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

int proxy_socks4_negotiate(Proxy_Socket p,int change)

{
  Proxy_Socket p_00;
  char cVar4;
  char *pcVar1;
  char *pcVar2;
  int iVar3;
  Proxy_Socket pSVar5;
  accept_fn_t p_Var6;
  Conf *in_a3;
  Conf *conf;
  bufchain *pbVar7;
  int iVar8;
  bufchain *unaff_s2;
  int iVar9;
  undefined *puVar10;
  code *pcVar11;
  int iStack_46c;
  char cStack_468;
  char cStack_467;
  char cStack_465;
  byte bStack_464;
  char acStack_462 [2];
  undefined4 uStack_460;
  undefined4 uStack_45c;
  undefined4 uStack_458;
  undefined2 uStack_454;
  int iStack_25c;
  Proxy_Socket pSStack_258;
  bufchain *pbStack_254;
  bufchain *pbStack_250;
  char addr [4];
  char hostname [512];
  
  p_00 = *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c;
  if (p->state == -1) {
    iVar8 = (*(code *)PTR_sk_addrtype_000be568)(p->remote_addr);
    if (iVar8 != 2) {
      if (iVar8 == 1) {
        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);
        iVar8 = 0;
LAB_00025b04:
        pcVar1 = conf_get_str(p->conf,0x10);
        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);
                    /* WARNING: Subroutine does not return */
        safemalloc(iVar3 + 9 + iVar8,1);
      }
      if (iVar8 == 3) {
        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);
        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);
        iVar8 = iVar8 + 1;
        addr[2] = '\0';
        addr[1] = '\0';
        addr[0] = '\0';
        addr[3] = '\x01';
        goto LAB_00025b04;
      }
      pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404);
      (*(code *)PTR___assert_fail_000bed58)
                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);
      pbVar7 = unaff_s2;
      goto LAB_00025c88;
    }
    p->error = PTR_s_1_0_000be3a8 + -0x5438;
    pbVar7 = (bufchain *)0x1;
    p_Var6 = (accept_fn_t)change;
  }
  else {
    pSVar5 = p;
    pbVar7 = (bufchain *)change;
    if (change == 0) {
LAB_00025c88:
      in_a3 = (Conf *)p->closing_calling_back;
      p_Var6 = (accept_fn_t)p->closing_error_msg;
      (*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);
      unaff_s2 = pbVar7;
    }
    else {
      unaff_s2 = (bufchain *)change;
      if (change == 1) {
        pbVar7 = (bufchain *)0x0;
        p_Var6 = (accept_fn_t)change;
      }
      else if (change == 3) {
        p_Var6 = p->accepting_constructor;
        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);
      }
      else if ((change == 2) && (p->state == 1)) {
        unaff_s2 = &p->pending_input_data;
        iVar8 = bufchain_size(unaff_s2);
        pbVar7 = (bufchain *)0x1;
        p_Var6 = (accept_fn_t)change;
        if (7 < iVar8) {
          bufchain_fetch(unaff_s2,hostname,8);
          if (hostname[0] == '\0') {
            if (hostname[1] == 'Z') {
              p_Var6 = (accept_fn_t)0x8;
              bufchain_consume(unaff_s2,8);
              proxy_activate(p);
            }
            else if (hostname[1] == '\\') {
              in_a3 = (Conf *)0x0;
              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);
              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);
            }
            else {
              in_a3 = (Conf *)0x0;
              if (hostname[1] == ']') {
                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);
                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);
              }
              else {
                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);
                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);
              }
            }
          }
          else {
            in_a3 = (Conf *)0x0;
            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);
            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);
          }
        }
      }
      else {
        in_a3 = (Conf *)0x0;
        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);
        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);
        pbVar7 = (bufchain *)0x1;
      }
    }
  }
  if (p_00 == *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c) {
    return (int)pbVar7;
  }
  puVar10 = PTR___stack_chk_fail_000bef04;
  (*(code *)PTR___stack_chk_fail_000bef04)();
  iStack_25c = **(int **)(puVar10 + 0x990e4);
  pSStack_258 = p;
  pbStack_254 = pbVar7;
  pbStack_250 = unaff_s2;
  if (p_00->state == -1) {
    uStack_460 = CONCAT13(5,uStack_460._1_3_);
    pcVar1 = conf_get_str(p_00->conf,0x10);
    pcVar2 = conf_get_str(p_00->conf,0x11);
    if ((*pcVar1 == '\0') && (*pcVar2 == '\0')) {
      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);
      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;
      iStack_46c = 3;
    }
    else {
      uStack_460._2_2_ = (ushort)(byte)uStack_460;
      iStack_46c = 3;
      proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);
      *(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;
      uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);
      iStack_46c = iStack_46c + 1;
    }
    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iStack_46c);
    p_00->state = 1;
    iVar8 = 0;
    goto LAB_00025ff8;
  }
  if (p_Var6 == (accept_fn_t)0x0) {
    in_a3 = (Conf *)p_00->closing_calling_back;
    (*(*p_00->plug)->closing)
              (p_00->plug,p_00->closing_error_msg,p_00->closing_error_code,(int)in_a3);
    iVar8 = 0;
    goto LAB_00025ff8;
  }
  if (p_Var6 == (accept_fn_t)0x1) {
    iVar8 = 0;
    goto LAB_00025ff8;
  }
  if (p_Var6 == (accept_fn_t)0x3) {
    iVar8 = (*(*p_00->plug)->accepting)(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx);
    goto LAB_00025ff8;
  }
  if (p_Var6 != (accept_fn_t)0x2) {
LAB_00025ec0:
    in_a3 = (Conf *)0x0;
    (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5014),0x1f41,0);
    iVar8 = 1;
    goto LAB_00025ff8;
  }
  pbVar7 = &p_00->pending_input_data;
  if (p_00->state == 1) {
    iVar3 = bufchain_size(pbVar7);
    iVar8 = 1;
    if (iVar3 < 2) goto LAB_00025ff8;
    bufchain_fetch(pbVar7,&uStack_460,2);
    in_a3 = (Conf *)0x0;
    if (uStack_460._0_1_ != '\x05') {
      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0);
      goto LAB_00025ff8;
    }
    if (uStack_460._1_1_ == '\0') {
      p_00->state = 2;
    }
    else if (uStack_460._1_1_ == '\x01') {
      p_00->state = 4;
    }
    else if (uStack_460._1_1_ == '\x02') {
      p_00->state = 5;
    }
    else {
      in_a3 = (Conf *)0x0;
      if (uStack_460._1_1_ != '\x03') {
        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)
        ;
        goto LAB_00025ff8;
      }
      p_00->state = 6;
    }
    in_a3 = (Conf *)0x0;
    bufchain_consume(pbVar7,2);
    iVar8 = p_00->state;
  }
  else {
    iVar8 = p_00->state;
  }
  if (iVar8 == 7) {
    pbVar7 = &p_00->pending_input_data;
    iVar8 = bufchain_size(pbVar7);
    if (1 < iVar8) {
      bufchain_fetch(pbVar7,&uStack_460,2);
      if (uStack_460._0_1_ == '\x01') {
        in_a3 = (Conf *)0x0;
        if (uStack_460._1_1_ != '\0') {
          (*(*p_00->plug)->closing)
                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);
          iVar8 = 1;
          goto LAB_00025ff8;
        }
        bufchain_consume(pbVar7,2);
        p_00->state = 2;
        goto LAB_000262a8;
      }
      in_a3 = (Conf *)0x0;
      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0);
    }
    iVar8 = 1;
    goto LAB_00025ff8;
  }
  if ((iVar8 == 8) && (iVar8 = proxy_socks5_handlechap(p_00), iVar8 != 0)) goto LAB_00025ff8;
  iVar8 = p_00->state;
  if (iVar8 == 2) {
LAB_000262a8:
    iVar8 = (**(code **)(puVar10 + 0x98720))(p_00->remote_addr);
    if (iVar8 == 1) {
      uStack_460 = CONCAT31(uStack_460._0_3_,1);
      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);
      iVar8 = 10;
    }
    else if (iVar8 == 2) {
      uStack_460 = CONCAT31(uStack_460._0_3_,4);
      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);
      iVar8 = 0x16;
    }
    else {
      if (iVar8 != 3) {
        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);
        (**(code **)(puVar10 + 0x98f10))
                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a
                  );
        goto LAB_0002640c;
      }
      uStack_460 = CONCAT31(uStack_460._0_3_,3);
      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);
      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);
      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);
      iVar8 = cVar4 + 7;
    }
    uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);
    uStack_460 = CONCAT13(5,uStack_460._1_3_);
    uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;
    iVar3 = p_00->remote_port;
    acStack_462[iVar8] = (char)((uint)iVar3 >> 8);
    acStack_462[iVar8 + 1] = (char)iVar3;
    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar8);
    p_00->state = 3;
    iVar8 = 1;
    goto LAB_00025ff8;
  }
  if (iVar8 != 3) {
    if (iVar8 == 4) {
      in_a3 = (Conf *)0x0;
      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0);
      iVar8 = 1;
      goto LAB_00025ff8;
    }
    if (iVar8 == 5) {
      pcVar1 = conf_get_str(p_00->conf,0x10);
      pcVar2 = conf_get_str(p_00->conf,0x11);
      if ((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')) {
        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)
        ;
        iVar8 = 1;
      }
      else {
        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);
        iVar8 = 1;
        if (0 < iVar3) {
          iVar8 = iVar3;
        }
        if (0xff < iVar8) {
          iVar8 = 0xff;
        }
        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);
        if (iVar3 < 1) {
          iVar3 = 1;
        }
        iVar9 = 0xff;
        if (iVar3 < 0x100) {
          iVar9 = iVar3;
        }
        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);
        uStack_460 = CONCAT13(1,uStack_460._1_3_);
        in_a3 = (Conf *)0x1ff;
        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);
        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;
        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);
        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);
        p_00->state = 7;
        iVar8 = 1;
      }
      goto LAB_00025ff8;
    }
    if ((iVar8 == 6) && (iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0)) goto LAB_00025ff8;
    goto LAB_00025ec0;
  }
LAB_0002640c:
  pbVar7 = &p_00->pending_input_data;
  iVar8 = bufchain_size(pbVar7);
  if (4 < iVar8) {
    bufchain_fetch(pbVar7,&cStack_468,5);
    iVar8 = (int)cStack_467;
    if (cStack_468 != '\x05') {
      in_a3 = (Conf *)0x0;
      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0);
      iVar8 = 1;
      goto LAB_00025ff8;
    }
    if (iVar8 != 0) {
      iVar3 = *(int *)(puVar10 + 0x98560);
      uStack_460 = *(undefined4 *)(iVar3 + -0x51d0);
      uStack_45c = *(undefined4 *)(iVar3 + -0x51cc);
      uStack_458 = *(undefined4 *)(iVar3 + -0x51c8);
      uStack_454 = *(undefined2 *)(iVar3 + -0x51c4);
      if (7 < (iVar8 - 1U & 0xff)) {
        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);
        (**(code **)(puVar10 + 0x98f00))
                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8
                  );
        iVar8 = FUN_00026560(p_00->plug);
        return iVar8;
      }
                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      iVar8 = (*(code *)(puVar10 +
                        (int)("Server requested password change" +
                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +
                                     (iVar8 - 1U & 0xff) * 4) + 8)))();
      return iVar8;
    }
    if (cStack_465 == '\x03') {
      iVar8 = bStack_464 + 6;
    }
    else if (cStack_465 == '\x04') {
      iVar8 = 0x16;
    }
    else {
      in_a3 = (Conf *)0x0;
      if (cStack_465 != '\x01') {
        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)
        ;
        iVar8 = 1;
        goto LAB_00025ff8;
      }
      iVar8 = 10;
    }
    iVar3 = bufchain_size(pbVar7);
    if (iVar8 <= iVar3) {
      bufchain_consume(pbVar7,iVar8);
      proxy_activate(p_00);
      iVar8 = 1;
      goto LAB_00025ff8;
    }
  }
  iVar8 = 1;
LAB_00025ff8:
  if (iStack_25c == **(int **)(puVar10 + 0x990e4)) {
    return iVar8;
  }
  pcVar11 = *(code **)(puVar10 + 0x990bc);
  iVar8 = iStack_25c;
  (*pcVar11)();
  iVar3 = **(int **)(pcVar11 + 0x98638);
  if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
    conf_get_int(in_a3,0xc);
  }
  conf = in_a3;
  iVar8 = (**(code **)(pcVar11 + 0x97c88))();
  if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
    conf_get_int(in_a3,0xc);
  }
  if (iVar3 != **(int **)(pcVar11 + 0x98638)) {
    (**(code **)(pcVar11 + 0x98610))();
                    /* WARNING: Subroutine does not return */
    conf_get_int(conf,0xd);
  }
  return 0;
}



char * proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)

{
  byte bVar1;
  char cVar10;
  int iVar2;
  int iVar3;
  int iVar4;
  char *pcVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  undefined4 uVar9;
  undefined *puVar11;
  char *pcVar12;
  char *pcVar13;
  int iVar14;
  int iVar15;
  char *unaff_s2;
  uint uVar16;
  char *unaff_s3;
  char *unaff_s4;
  int iVar17;
  undefined4 unaff_s5;
  int unaff_s6;
  char *pcVar18;
  code *pcVar19;
  code *pcVar20;
  int iStack_51c;
  undefined4 uStack_518;
  undefined1 auStack_4fc [64];
  int iStack_4bc;
  int iStack_4b8;
  char *pcStack_4b4;
  char *pcStack_4b0;
  char *pcStack_4ac;
  char *pcStack_4a8;
  undefined4 uStack_4a4;
  int iStack_4a0;
  char *pcStack_46c;
  char cStack_468;
  char cStack_467;
  char cStack_465;
  byte bStack_464;
  char acStack_462 [2];
  undefined4 uStack_460;
  undefined4 uStack_45c;
  undefined4 uStack_458;
  undefined2 uStack_454;
  int iStack_25c;
  undefined *puStack_258;
  char *pcStack_254;
  char *pcStack_250;
  char *pcStack_24c;
  char *pcStack_248;
  undefined4 local_220;
  char local_21c;
  char local_21b;
  int local_1c;
  
  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;
  if (*(int *)(param_1 + 0x44) == -1) {
    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));
    if (iVar2 == 2) {
      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;
      pcVar13 = (char *)0x1;
    }
    else {
      if (iVar2 == 1) {
        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);
        unaff_s4 = (char *)0x0;
      }
      else {
        if (iVar2 != 3) {
          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;
          (*(code *)PTR___assert_fail_000bed58)
                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);
          pcVar13 = unaff_s2;
          goto LAB_00025c88;
        }
        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);
        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);
        unaff_s4 = (char *)(iVar2 + 1);
        local_220 = 1;
      }
      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);
      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);
      unaff_s3 = unaff_s4 + iVar2 + 9;
      pcVar13 = (char *)safemalloc(unaff_s3,1);
      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);
      *pcVar13 = '\x04';
      pcVar13[1] = '\x01';
      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);
      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);
      *(undefined4 *)(pcVar13 + 4) = local_220;
      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);
      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);
      param_2 = pcVar13;
      param_3 = unaff_s3;
      (**(code **)(**(int **)(param_1 + 8) + 8))();
      safefree(unaff_s2);
      safefree(pcVar13);
      *(undefined4 *)(param_1 + 0x44) = 1;
      pcVar13 = (char *)0x0;
    }
  }
  else {
    puVar11 = param_1;
    pcVar13 = param_2;
    if (param_2 == (char *)0x0) {
LAB_00025c88:
      param_4 = *(int *)(param_1 + 0x58);
      param_3 = *(char **)(param_1 + 0x54);
      param_2 = *(char **)(param_1 + 0x50);
      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();
      unaff_s2 = pcVar13;
    }
    else {
      unaff_s2 = param_2;
      if (param_2 == (char *)0x1) {
        pcVar13 = (char *)0x0;
      }
      else if (param_2 == (char *)0x3) {
        param_3 = *(char **)(param_1 + 0x70);
        param_2 = *(char **)(param_1 + 0x6c);
        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();
      }
      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {
        unaff_s2 = param_1 + 0x34;
        iVar2 = bufchain_size(unaff_s2);
        pcVar13 = (char *)0x1;
        if (7 < iVar2) {
          param_3 = (char *)0x8;
          bufchain_fetch(unaff_s2,&local_21c);
          if (local_21c == '\0') {
            if (local_21b == 'Z') {
              param_2 = (char *)0x8;
              bufchain_consume(unaff_s2);
              proxy_activate(param_1);
            }
            else if (local_21b == '\\') {
              param_4 = 0;
              param_3 = (char *)0x1f40;
              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;
              (**(code **)(**(int **)(param_1 + 0xc) + 4))();
            }
            else {
              param_4 = 0;
              if (local_21b == ']') {
                param_3 = (char *)0x1f40;
                param_2 = PTR_s_1_0_000be3a8 + -0x5370;
                (**(code **)(**(int **)(param_1 + 0xc) + 4))();
              }
              else {
                param_3 = (char *)0x1f40;
                param_2 = PTR_s_1_0_000be3a8 + -0x5338;
                (**(code **)(**(int **)(param_1 + 0xc) + 4))();
              }
            }
          }
          else {
            param_4 = 0;
            param_3 = (char *)0x1f40;
            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;
            (**(code **)(**(int **)(param_1 + 0xc) + 4))();
          }
        }
      }
      else {
        param_4 = 0;
        param_3 = (char *)0x1f41;
        param_2 = PTR_s_1_0_000be3a8 + -0x545c;
        (**(code **)(**(int **)(param_1 + 0xc) + 4))();
        pcVar13 = (char *)0x1;
      }
    }
  }
  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {
    return pcVar13;
  }
  iVar2 = local_1c;
  puVar11 = PTR___stack_chk_fail_000bef04;
  (*(code *)PTR___stack_chk_fail_000bef04)();
  iStack_25c = **(int **)(puVar11 + 0x990e4);
  puStack_258 = param_1;
  pcStack_254 = pcVar13;
  pcStack_250 = unaff_s2;
  pcStack_24c = unaff_s3;
  pcStack_248 = unaff_s4;
  if (*(int *)(iVar2 + 0x44) == -1) {
    uStack_460 = CONCAT13(5,uStack_460._1_3_);
    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);
    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);
    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {
      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);
      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;
      pcStack_46c = (char *)0x3;
    }
    else {
      uStack_460._2_2_ = (ushort)(byte)uStack_460;
      pcStack_46c = (char *)0x3;
      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);
      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';
      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);
      pcStack_46c = pcStack_46c + 1;
    }
    pcVar12 = (char *)&uStack_460;
    param_3 = pcStack_46c;
    (**(code **)(**(int **)(iVar2 + 8) + 8))();
    *(undefined4 *)(iVar2 + 0x44) = 1;
    pcVar13 = (char *)0x0;
    pcStack_4b0 = unaff_s2;
  }
  else {
    pcStack_4b0 = param_2;
    if (param_2 == (char *)0x0) {
      param_4 = *(int *)(iVar2 + 0x58);
      param_3 = *(char **)(iVar2 + 0x54);
      pcVar12 = *(char **)(iVar2 + 0x50);
      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
      pcVar13 = (char *)0x0;
    }
    else if (param_2 == (char *)0x1) {
      pcVar13 = (char *)0x0;
      pcVar12 = param_2;
    }
    else if (param_2 == (char *)0x3) {
      param_3 = *(char **)(iVar2 + 0x70);
      pcVar12 = *(char **)(iVar2 + 0x6c);
      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();
    }
    else {
      pcVar5 = param_2;
      if (param_2 == (char *)0x2) {
        pcVar5 = (char *)(iVar2 + 0x34);
        pcStack_4b0 = pcVar5;
        if (*(int *)(iVar2 + 0x44) == 1) {
          iVar8 = bufchain_size(pcVar5);
          param_3 = (char *)0x2;
          pcVar13 = (char *)0x1;
          pcVar12 = param_2;
          if (1 < iVar8) {
            bufchain_fetch(pcVar5,&uStack_460);
            param_4 = 0;
            if (uStack_460._0_1_ == '\x05') {
              if (uStack_460._1_1_ == '\0') {
                *(undefined4 *)(iVar2 + 0x44) = 2;
              }
              else if (uStack_460._1_1_ == '\x01') {
                *(undefined4 *)(iVar2 + 0x44) = 4;
              }
              else if (uStack_460._1_1_ == '\x02') {
                *(undefined4 *)(iVar2 + 0x44) = 5;
              }
              else {
                param_4 = 0;
                if (uStack_460._1_1_ != '\x03') {
                  param_3 = (char *)0x1f40;
                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);
                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                  goto LAB_00025ff8;
                }
                *(undefined4 *)(iVar2 + 0x44) = 6;
              }
              param_4 = 0;
              param_2 = (char *)0x2;
              bufchain_consume(pcVar5);
              iVar8 = *(int *)(iVar2 + 0x44);
              goto LAB_00026064;
            }
            param_3 = (char *)0x1f40;
            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);
            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
          }
        }
        else {
          iVar8 = *(int *)(iVar2 + 0x44);
LAB_00026064:
          if (iVar8 == 7) {
            iVar14 = iVar2 + 0x34;
            iVar8 = bufchain_size(iVar14);
            param_3 = (char *)0x2;
            if (1 < iVar8) {
              bufchain_fetch(iVar14,&uStack_460);
              if (uStack_460._0_1_ == '\x01') {
                param_4 = 0;
                if (uStack_460._1_1_ == '\0') {
                  bufchain_consume(iVar14,2);
                  *(undefined4 *)(iVar2 + 0x44) = 2;
                  goto LAB_000262a8;
                }
                param_3 = (char *)0x1f40;
                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);
                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                pcVar13 = (char *)0x1;
                goto LAB_00025ff8;
              }
              param_4 = 0;
              param_3 = (char *)0x1f40;
              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);
              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
            }
            pcVar13 = (char *)0x1;
            pcVar12 = param_2;
          }
          else if ((iVar8 != 8) ||
                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,
                  pcVar13 == (char *)0x0)) {
            iVar8 = *(int *)(iVar2 + 0x44);
            if (iVar8 == 2) {
LAB_000262a8:
              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));
              if (iVar8 == 1) {
                uStack_460 = CONCAT31(uStack_460._0_3_,1);
                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);
                param_3 = (char *)0xa;
              }
              else if (iVar8 == 2) {
                uStack_460 = CONCAT31(uStack_460._0_3_,4);
                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);
                param_3 = (char *)0x16;
              }
              else {
                if (iVar8 != 3) {
                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;
                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);
                  (**(code **)(puVar11 + 0x98f10))
                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);
                  goto LAB_0002640c;
                }
                uStack_460 = CONCAT31(uStack_460._0_3_,3);
                (**(code **)(puVar11 + 0x98568))
                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);
                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);
                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);
                param_3 = (char *)(cVar10 + 7);
              }
              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);
              uStack_460 = CONCAT13(5,uStack_460._1_3_);
              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;
              uVar9 = *(undefined4 *)(iVar2 + 0x14);
              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);
              (acStack_462 + 1)[(int)param_3] = (char)uVar9;
              pcVar12 = (char *)&uStack_460;
              (**(code **)(**(int **)(iVar2 + 8) + 8))();
              *(undefined4 *)(iVar2 + 0x44) = 3;
              pcVar13 = (char *)0x1;
            }
            else if (iVar8 == 3) {
LAB_0002640c:
              iVar14 = iVar2 + 0x34;
              iVar8 = bufchain_size(iVar14);
              param_3 = &DAT_00000005;
              if (iVar8 < 5) {
LAB_00026430:
                pcVar13 = (char *)0x1;
                pcVar12 = param_2;
                pcStack_4b0 = pcVar5;
              }
              else {
                bufchain_fetch(iVar14,&cStack_468);
                pcStack_4b0 = (char *)(int)cStack_467;
                if (cStack_468 == '\x05') {
                  if (pcStack_4b0 == (char *)0x0) {
                    if (cStack_465 == '\x03') {
                      param_2 = (char *)(bStack_464 + 6);
                    }
                    else if (cStack_465 == '\x04') {
                      param_2 = (char *)0x16;
                    }
                    else {
                      param_4 = 0;
                      if (cStack_465 != '\x01') {
                        param_3 = (char *)0x1f40;
                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);
                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                        pcVar13 = (char *)0x1;
                        goto LAB_00025ff8;
                      }
                      param_2 = (char *)0xa;
                    }
                    iVar8 = bufchain_size(iVar14);
                    pcVar5 = param_2;
                    if (iVar8 < (int)param_2) goto LAB_00026430;
                    pcVar12 = param_2;
                    bufchain_consume(iVar14);
                    proxy_activate(iVar2);
                    pcVar13 = (char *)0x1;
                    pcStack_4b0 = param_2;
                  }
                  else {
                    iVar8 = *(int *)(puVar11 + 0x98560);
                    uStack_460 = *(uint *)(iVar8 + -0x51d0);
                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);
                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);
                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);
                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {
                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      pcVar13 = (char *)(*(code *)(puVar11 +
                                                  (int)("Server requested password change" +
                                                       *(int *)(*(int *)(puVar11 + 0x98560) +
                                                                -0x4e60 +
                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4
                                                               ) + 8)))();
                      return pcVar13;
                    }
                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);
                    (**(code **)(puVar11 + 0x98f00))
                              ((int)&uStack_460 + iVar8,1,0xffffffff,
                               *(int *)(puVar11 + 0x98560) + -0x5100);
                    param_4 = 0;
                    param_3 = (char *)0x1f40;
                    pcVar12 = (char *)&uStack_460;
                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                    pcVar13 = (char *)0x1;
                  }
                }
                else {
                  param_4 = 0;
                  param_3 = (char *)0x1f40;
                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);
                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                  pcVar13 = (char *)0x1;
                }
              }
            }
            else if (iVar8 == 4) {
              param_4 = 0;
              param_3 = (char *)0x1f40;
              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);
              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
              pcVar13 = (char *)0x1;
            }
            else if (iVar8 == 5) {
              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);
              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);
              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {
                param_3 = (char *)0x1f40;
                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);
                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                pcVar13 = (char *)0x1;
              }
              else {
                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);
                unaff_s5 = 1;
                pcVar5 = (char *)0x1;
                if (0 < (int)pcVar13) {
                  pcVar5 = pcVar13;
                }
                if (0xff < (int)pcVar5) {
                  pcVar5 = (char *)0xff;
                }
                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);
                if (iVar8 < 1) {
                  iVar8 = 1;
                }
                unaff_s6 = 0xff;
                if (iVar8 < 0x100) {
                  unaff_s6 = iVar8;
                }
                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);
                uStack_460 = CONCAT13(1,uStack_460._1_3_);
                param_4 = 0x1ff;
                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);
                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;
                unaff_s3 = (char *)&uStack_460;
                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);
                param_3 = pcVar5 + unaff_s6 + 3;
                pcVar12 = unaff_s3;
                (**(code **)(**(int **)(iVar2 + 8) + 8))();
                *(undefined4 *)(iVar2 + 0x44) = 7;
                pcVar13 = (char *)0x1;
                pcStack_4b0 = pcVar5;
              }
            }
            else if ((iVar8 != 6) ||
                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,
                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;
          }
        }
      }
      else {
LAB_00025ec0:
        param_4 = 0;
        param_3 = (char *)0x1f41;
        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);
        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
        pcVar13 = (char *)0x1;
        pcStack_4b0 = pcVar5;
      }
    }
  }
LAB_00025ff8:
  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {
    return pcVar13;
  }
  pcVar19 = *(code **)(puVar11 + 0x990bc);
  iVar8 = iStack_25c;
  (*pcVar19)();
  pcVar20 = pcVar19 + 0x9fa7c;
  iStack_4bc = **(int **)(pcVar19 + 0x98638);
  iVar14 = param_4;
  iStack_4b8 = iVar2;
  pcStack_4b4 = pcVar13;
  pcStack_4ac = unaff_s3;
  pcStack_4a8 = unaff_s4;
  uStack_4a4 = unaff_s5;
  iStack_4a0 = unaff_s6;
  if (iVar8 == 0) {
    pcVar13 = (char *)0xc;
    iVar2 = conf_get_int(param_4,0xc);
    if (iVar2 == 0) {
      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);
      if (iVar2 != 0) {
        pcVar5 = (char *)0x0;
        goto LAB_00026c80;
      }
    }
    else {
      iVar2 = 0;
    }
  }
  else {
    iVar2 = (**(code **)(pcVar19 + 0x97c88))();
    pcVar13 = (char *)0xc;
    if (iVar2 != 0) {
      pcVar5 = (char *)0x0;
      goto LAB_00026c80;
    }
    iVar2 = conf_get_int(param_4,0xc);
    if (iVar2 == 0) {
      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);
      pcVar5 = (char *)0x0;
      if (iVar2 != 0) goto LAB_00026c80;
      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);
      param_3 = &DAT_00000040;
      if (iVar2 != 0) {
        pcVar5 = (char *)0x0;
        goto LAB_00026c80;
      }
    }
    param_3 = &DAT_00000040;
    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);
    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);
  }
  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);
  pcVar13 = (char *)0xa;
  iVar4 = conf_get_str(param_4,10);
  iVar15 = 0;
  while( true ) {
    uVar16 = (uint)*(char *)(iVar4 + iVar15);
    if (uVar16 == 0) break;
    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();
    iVar17 = *piVar6;
    iVar7 = iVar15;
    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),
           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {
      iVar7 = iVar7 + 1;
      uVar16 = (uint)*(char *)(iVar4 + iVar7);
      if (uVar16 == 0) {
        pcVar5 = (char *)0x1;
        goto LAB_00026c80;
      }
    }
    if (uVar16 == 0) {
      pcVar5 = (char *)0x1;
      goto LAB_00026c80;
    }
    bVar1 = *(byte *)(iVar4 + iVar7);
    iVar15 = iVar7;
    while ((bVar1 != 0 &&
           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))
            || (bVar1 == 0x2a))))) {
      iVar15 = iVar15 + 1;
      bVar1 = *(byte *)(iVar4 + iVar15);
    }
    if (uVar16 == 0x2a) {
      if (iVar8 != 0) {
        param_3 = (char *)((iVar15 - iVar7) + -1);
        pcVar13 = (char *)(iVar4 + iVar7 + 1);
        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))
                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);
        if (pcVar5 == (char *)0x0) goto LAB_00026c80;
      }
      param_3 = (char *)((iVar15 - iVar7) + -1);
      pcVar18 = (char *)(iVar4 + iVar7 + 1);
      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);
      if (iVar7 == 0) {
        pcVar5 = (char *)0x0;
        pcVar13 = pcVar18;
        goto LAB_00026c80;
      }
    }
    else {
      pcVar13 = pcVar18;
      if (*(char *)(iVar4 + iVar15 + -1) == '*') {
        if (iVar8 != 0) {
          param_3 = (char *)((iVar15 - iVar7) + -1);
          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);
          if (pcVar5 == (char *)0x0) goto LAB_00026c80;
        }
        param_3 = (char *)((iVar15 - iVar7) + -1);
        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);
        if (iVar7 == 0) {
          pcVar5 = (char *)0x0;
          pcVar13 = pcVar18;
          goto LAB_00026c80;
        }
      }
      else {
        param_3 = (char *)(iVar15 - iVar7);
        if ((iVar8 != 0) &&
           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),
           pcVar5 == (char *)0x0)) goto LAB_00026c80;
        param_3 = (char *)(iVar15 - iVar7);
        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);
        pcVar13 = pcVar18;
        if (pcVar5 == (char *)0x0) goto LAB_00026c80;
      }
    }
    bVar1 = *(byte *)(iVar4 + iVar15);
    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))
           && (bVar1 != 0x2c))) {
      bVar1 = *(byte *)(iVar4 + iVar15 + 1);
      iVar15 = iVar15 + 1;
    }
  }
  pcVar5 = (char *)0x1;
LAB_00026c80:
  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {
    return pcVar5;
  }
  pcVar19 = *(code **)(pcVar19 + 0x98610);
  iVar2 = iStack_4bc;
  (*pcVar19)();
  iVar8 = conf_get_int(iVar14,0xd);
  if (((iVar8 == 0) ||
      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&
       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||
        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||
     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {
    if (iStack_51c != 0) {
      if (pcVar20 == (code *)0x1) {
        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;
      }
      else if (pcVar20 == (code *)0x2) {
        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;
      }
      else {
        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;
      }
      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);
      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);
      safefree(uVar9);
    }
    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);
  }
  else {
    if (iStack_51c != 0) {
      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);
      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);
      safefree(uVar9);
    }
    uVar9 = dupstr(iVar2);
    *(undefined4 *)param_3 = uVar9;
    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);
  }
  return pcVar13;
}


lui gp,0xa
addiu gp,gp,0x9b0
addu gp,gp,t9
addiu sp,sp,-0x238
sw ra,0x234(sp)
sw s4,0x230(sp)
sw s3,0x22c(sp)
sw s2,0x228(sp)
sw s1,0x224(sp)
sw s0,0x220(sp)
sw gp,0x10(sp)
or s0,a0,zero
lw v0,-0x7444(gp)
lw v0,0x0(v0)
sw v0,0x21c(sp)
lw s1,0x44(a0)
li v0,-0x1
beq s1,v0,0x00025a90
_lw t9,-0x7e08(gp)
beq a1,zero,0x00025c88
_or s2,a1,zero
li v0,0x1
beq a1,v0,0x00025e34
_li v0,0x3
beq a1,v0,0x00025cb4
_li v0,0x2
beq a1,v0,0x00025cdc
_li v0,0x1
lw a0,0xc(s0)
lw v0,0x0(a0)
lw t9,0x4(v0)
or a3,zero,zero
li a2,0x1f41
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x545c
jalr t9
_nop
lw gp,0x10(sp)
li s1,0x1
or v0,s1,zero
lw a0,0x21c(sp)
lw v1,-0x7444(gp)
lw v1,0x0(v1)
bne a0,v1,0x00025e3c
_lw ra,0x234(sp)
lw s4,0x230(sp)
lw s3,0x22c(sp)
lw s2,0x228(sp)
lw s1,0x224(sp)
lw s0,0x220(sp)
jr ra
_addiu sp,sp,0x238
lw a0,0x10(a0)
jalr t9
_nop
lw gp,0x10(sp)
li v1,0x2
beq v0,v1,0x00025c2c
_li v1,0x1
beq v0,v1,0x00025c40
_li v1,0x3
bne v0,v1,0x00025c60
_li a2,0x200
addiu s1,sp,0x1c
or a1,s1,zero
lw a0,0x10(s0)
lw t9,-0x7fc0(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a0,s1,zero
lw t9,-0x74fc(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu s4,v0,0x1
sb zero,0x1a(sp)
sb zero,0x19(sp)
sb zero,0x18(sp)
li v0,0x1
sb v0,0x1b(sp)
li a1,0x10
lw a0,0x74(s0)
lw t9,-0x7f4c(gp)
bal 0x0001d3c0
_nop
lw gp,0x10(sp)
or s2,v0,zero
or a0,v0,zero
lw t9,-0x74fc(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu v0,v0,0x9
addu s3,v0,s4
li a1,0x1
or a0,s3,zero
lw t9,-0x7f9c(gp)
bal 0x000217e8
_nop
lw gp,0x10(sp)
or s1,v0,zero
or a1,s2,zero
addiu a0,v0,0x8
lw t9,-0x74a0(gp)
jalr t9
_nop
lw gp,0x10(sp)
li v0,0x4
sb v0,0x0(s1)
li v0,0x1
sb v0,0x1(s1)
lw v0,0x14(s0)
sra v0,v0,0x8
sb v0,0x2(s1)
lw v0,0x14(s0)
sb v0,0x3(s1)
lw v0,0x18(sp)
swl v0,0x4(s1)
swr v0,0x7(s1)
or a0,s2,zero
lw t9,-0x74fc(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu v0,v0,0x9
or a2,s4,zero
addiu a1,sp,0x1c
addu a0,s1,v0
lw t9,-0x7440(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a0,0x8(s0)
lw v0,0x0(a0)
lw t9,0x8(v0)
or a2,s3,zero
or a1,s1,zero
jalr t9
_nop
lw gp,0x10(sp)
or a0,s2,zero
lw t9,-0x7fac(gp)
bal 0x000222f8
_nop
lw gp,0x10(sp)
or a0,s1,zero
lw t9,-0x7fac(gp)
bal 0x000222f8
_nop
lw gp,0x10(sp)
li v0,0x1
sw v0,0x44(s0)
b 0x00025a5c
_or s1,zero,zero
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x5438
sw v0,0x4(s0)
b 0x00025a5c
_li s1,0x1
addiu a1,sp,0x18
lw a0,0x10(s0)
lw t9,-0x7e04(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00025b04
_or s4,zero,zero
lw a3,-0x7fc8(gp)
addiu a3,a3,-0x4e28
li a2,0x32a
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x54b4
lw a0,-0x7fc8(gp)
addiu a0,a0,-0x5404
lw t9,-0x7618(gp)
jalr t9
_nop
lw a0,0xc(a0)
lw v0,0x0(a0)
lw t9,0x4(v0)
lw a3,0x58(s0)
lw a2,0x54(s0)
lw a1,0x50(s0)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00025a5c
_or s1,s2,zero
lw a0,0xc(a0)
lw v0,0x0(a0)
lw t9,0x10(v0)
lw a2,0x70(s0)
lw a1,0x6c(s0)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00025a5c
_or s1,v0,zero
bne s1,v0,0x00025a30
_lw t9,-0x7fa0(gp)
addiu s2,a0,0x34
or a0,s2,zero
bal 0x000216c0
_nop
lw gp,0x10(sp)
slti v0,v0,0x8
bne v0,zero,0x00025a60
_or v0,s1,zero
li a2,0x8
addiu a1,sp,0x1c
or a0,s2,zero
lw t9,-0x7f98(gp)
bal 0x000216ec
_nop
lw gp,0x10(sp)
lb v0,0x1c(sp)
bne v0,zero,0x00025d74
_li v1,0x5a
lb v0,0x1d(sp)
beq v0,v1,0x00025e00
_li v1,0x5c
beq v0,v1,0x00025da4
_li v1,0x5d
beq v0,v1,0x00025dd4
_or a3,zero,zero
lw a0,0xc(s0)
lw v0,0x0(a0)
lw t9,0x4(v0)
li a2,0x1f40
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x5338
jalr t9
_nop
lw gp,0x10(sp)
b 0x00025a60
_or v0,s1,zero
lw a0,0xc(s0)
lw v0,0x0(a0)
lw t9,0x4(v0)
or a3,zero,zero
li a2,0x1f40
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x53ec
jalr t9
_nop
lw gp,0x10(sp)
b 0x00025a60
_or v0,s1,zero
lw a0,0xc(s0)
lw v0,0x0(a0)
lw t9,0x4(v0)
or a3,zero,zero
li a2,0x1f40
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x53a4
jalr t9
_nop
lw gp,0x10(sp)
b 0x00025a60
_or v0,s1,zero
lw a0,0xc(s0)
lw v0,0x0(a0)
lw t9,0x4(v0)
li a2,0x1f40
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x5370
jalr t9
_nop
lw gp,0x10(sp)
b 0x00025a60
_or v0,s1,zero
li a1,0x8
or a0,s2,zero
lw t9,-0x7f94(gp)
bal 0x00022590
_nop
lw gp,0x10(sp)
or a0,s0,zero
lw t9,-0x7e0c(gp)
bal 0x00024f3c
_nop
lw gp,0x10(sp)
b 0x00025a60
_or v0,s1,zero
b 0x00025a5c
_or s1,zero,zero
lw t9,-0x746c(gp)
jalr t9
_nop
(translation_unit "char * proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)\n\n{\n  byte bVar1;\n  char cVar10;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int iVar14;\n  int iVar15;\n  char *unaff_s2;\n  uint uVar16;\n  char *unaff_s3;\n  char *unaff_s4;\n  int iVar17;\n  undefined4 unaff_s5;\n  int unaff_s6;\n  char *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_51c;\n  undefined4 uStack_518;\n  undefined1 auStack_4fc [64];\n  int iStack_4bc;\n  int iStack_4b8;\n  char *pcStack_4b4;\n  char *pcStack_4b0;\n  char *pcStack_4ac;\n  char *pcStack_4a8;\n  undefined4 uStack_4a4;\n  int iStack_4a0;\n  char *pcStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  undefined *puStack_258;\n  char *pcStack_254;\n  char *pcStack_250;\n  char *pcStack_24c;\n  char *pcStack_248;\n  undefined4 local_220;\n  char local_21c;\n  char local_21b;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;\n  if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }\n  iVar2 = local_1c;\n  puVar11 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar11 + 0x990e4);\n  puStack_258 = param_1;\n  pcStack_254 = pcVar13;\n  pcStack_250 = unaff_s2;\n  pcStack_24c = unaff_s3;\n  pcStack_248 = unaff_s4;\n  if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }\n  pcVar19 = *(code **)(puVar11 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar19)();\n  pcVar20 = pcVar19 + 0x9fa7c;\n  iStack_4bc = **(int **)(pcVar19 + 0x98638);\n  iVar14 = param_4;\n  iStack_4b8 = iVar2;\n  pcStack_4b4 = pcVar13;\n  pcStack_4ac = unaff_s3;\n  pcStack_4a8 = unaff_s4;\n  uStack_4a4 = unaff_s5;\n  iStack_4a0 = unaff_s6;\n  if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }\n  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);\n  pcVar13 = (char *)0xa;\n  iVar4 = conf_get_str(param_4,10);\n  iVar15 = 0;\n  while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }\n  pcVar5 = (char *)0x1;\nLAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x98610);\n  iVar2 = iStack_4bc;\n  (*pcVar19)();\n  iVar8 = conf_get_int(iVar14,0xd);\n  if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }\n  return pcVar13;\n}\n\n" (function_definition "char * proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)\n\n{\n  byte bVar1;\n  char cVar10;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int iVar14;\n  int iVar15;\n  char *unaff_s2;\n  uint uVar16;\n  char *unaff_s3;\n  char *unaff_s4;\n  int iVar17;\n  undefined4 unaff_s5;\n  int unaff_s6;\n  char *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_51c;\n  undefined4 uStack_518;\n  undefined1 auStack_4fc [64];\n  int iStack_4bc;\n  int iStack_4b8;\n  char *pcStack_4b4;\n  char *pcStack_4b0;\n  char *pcStack_4ac;\n  char *pcStack_4a8;\n  undefined4 uStack_4a4;\n  int iStack_4a0;\n  char *pcStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  undefined *puStack_258;\n  char *pcStack_254;\n  char *pcStack_250;\n  char *pcStack_24c;\n  char *pcStack_248;\n  undefined4 local_220;\n  char local_21c;\n  char local_21b;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;\n  if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }\n  iVar2 = local_1c;\n  puVar11 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar11 + 0x990e4);\n  puStack_258 = param_1;\n  pcStack_254 = pcVar13;\n  pcStack_250 = unaff_s2;\n  pcStack_24c = unaff_s3;\n  pcStack_248 = unaff_s4;\n  if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }\n  pcVar19 = *(code **)(puVar11 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar19)();\n  pcVar20 = pcVar19 + 0x9fa7c;\n  iStack_4bc = **(int **)(pcVar19 + 0x98638);\n  iVar14 = param_4;\n  iStack_4b8 = iVar2;\n  pcStack_4b4 = pcVar13;\n  pcStack_4ac = unaff_s3;\n  pcStack_4a8 = unaff_s4;\n  uStack_4a4 = unaff_s5;\n  iStack_4a0 = unaff_s6;\n  if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }\n  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);\n  pcVar13 = (char *)0xa;\n  iVar4 = conf_get_str(param_4,10);\n  iVar15 = 0;\n  while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }\n  pcVar5 = (char *)0x1;\nLAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x98610);\n  iVar2 = iStack_4bc;\n  (*pcVar19)();\n  iVar8 = conf_get_int(iVar14,0xd);\n  if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }\n  return pcVar13;\n}" primitive_type (pointer_declarator "* proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)" * (function_declarator "proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)" identifier (parameter_list "(undefined *param_1,char *param_2,char *param_3,int param_4)" ( (parameter_declaration "undefined *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) )))) (compound_statement "{\n  byte bVar1;\n  char cVar10;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int iVar14;\n  int iVar15;\n  char *unaff_s2;\n  uint uVar16;\n  char *unaff_s3;\n  char *unaff_s4;\n  int iVar17;\n  undefined4 unaff_s5;\n  int unaff_s6;\n  char *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_51c;\n  undefined4 uStack_518;\n  undefined1 auStack_4fc [64];\n  int iStack_4bc;\n  int iStack_4b8;\n  char *pcStack_4b4;\n  char *pcStack_4b0;\n  char *pcStack_4ac;\n  char *pcStack_4a8;\n  undefined4 uStack_4a4;\n  int iStack_4a0;\n  char *pcStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  undefined *puStack_258;\n  char *pcStack_254;\n  char *pcStack_250;\n  char *pcStack_24c;\n  char *pcStack_248;\n  undefined4 local_220;\n  char local_21c;\n  char local_21b;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;\n  if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }\n  iVar2 = local_1c;\n  puVar11 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar11 + 0x990e4);\n  puStack_258 = param_1;\n  pcStack_254 = pcVar13;\n  pcStack_250 = unaff_s2;\n  pcStack_24c = unaff_s3;\n  pcStack_248 = unaff_s4;\n  if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }\n  pcVar19 = *(code **)(puVar11 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar19)();\n  pcVar20 = pcVar19 + 0x9fa7c;\n  iStack_4bc = **(int **)(pcVar19 + 0x98638);\n  iVar14 = param_4;\n  iStack_4b8 = iVar2;\n  pcStack_4b4 = pcVar13;\n  pcStack_4ac = unaff_s3;\n  pcStack_4a8 = unaff_s4;\n  uStack_4a4 = unaff_s5;\n  iStack_4a0 = unaff_s6;\n  if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }\n  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);\n  pcVar13 = (char *)0xa;\n  iVar4 = conf_get_str(param_4,10);\n  iVar15 = 0;\n  while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }\n  pcVar5 = (char *)0x1;\nLAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x98610);\n  iVar2 = iStack_4bc;\n  (*pcVar19)();\n  iVar8 = conf_get_int(iVar14,0xd);\n  if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }\n  return pcVar13;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "char *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "char *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "char *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 unaff_s5;" type_identifier identifier ;) (declaration "int unaff_s6;" primitive_type identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int iStack_51c;" primitive_type identifier ;) (declaration "undefined4 uStack_518;" type_identifier identifier ;) (declaration "undefined1 auStack_4fc [64];" type_identifier (array_declarator "auStack_4fc [64]" identifier [ number_literal ]) ;) (declaration "int iStack_4bc;" primitive_type identifier ;) (declaration "int iStack_4b8;" primitive_type identifier ;) (declaration "char *pcStack_4b4;" primitive_type (pointer_declarator "*pcStack_4b4" * identifier) ;) (declaration "char *pcStack_4b0;" primitive_type (pointer_declarator "*pcStack_4b0" * identifier) ;) (declaration "char *pcStack_4ac;" primitive_type (pointer_declarator "*pcStack_4ac" * identifier) ;) (declaration "char *pcStack_4a8;" primitive_type (pointer_declarator "*pcStack_4a8" * identifier) ;) (declaration "undefined4 uStack_4a4;" type_identifier identifier ;) (declaration "int iStack_4a0;" primitive_type identifier ;) (declaration "char *pcStack_46c;" primitive_type (pointer_declarator "*pcStack_46c" * identifier) ;) (declaration "char cStack_468;" primitive_type identifier ;) (declaration "char cStack_467;" primitive_type identifier ;) (declaration "char cStack_465;" primitive_type identifier ;) (declaration "byte bStack_464;" type_identifier identifier ;) (declaration "char acStack_462 [2];" primitive_type (array_declarator "acStack_462 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_460;" type_identifier identifier ;) (declaration "undefined4 uStack_45c;" type_identifier identifier ;) (declaration "undefined4 uStack_458;" type_identifier identifier ;) (declaration "undefined2 uStack_454;" type_identifier identifier ;) (declaration "int iStack_25c;" primitive_type identifier ;) (declaration "undefined *puStack_258;" type_identifier (pointer_declarator "*puStack_258" * identifier) ;) (declaration "char *pcStack_254;" primitive_type (pointer_declarator "*pcStack_254" * identifier) ;) (declaration "char *pcStack_250;" primitive_type (pointer_declarator "*pcStack_250" * identifier) ;) (declaration "char *pcStack_24c;" primitive_type (pointer_declarator "*pcStack_24c" * identifier) ;) (declaration "char *pcStack_248;" primitive_type (pointer_declarator "*pcStack_248" * identifier) ;) (declaration "undefined4 local_220;" type_identifier identifier ;) (declaration "char local_21c;" primitive_type identifier ;) (declaration "char local_21b;" primitive_type identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000bef2c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000bef2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000bef2c" * (cast_expression "(int *)PTR___stack_chk_guard_000bef2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x44) == -1)" ( (binary_expression "*(int *)(param_1 + 0x44) == -1" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));" (assignment_expression "iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10))" identifier = (call_expression "(*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10))" (parenthesized_expression "(*(code *)PTR_sk_addrtype_000be568)" ( (pointer_expression "*(code *)PTR_sk_addrtype_000be568" * (cast_expression "(code *)PTR_sk_addrtype_000be568" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x10))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }" { (expression_statement "*(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;" (assignment_expression "*(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438" (pointer_expression "*(undefined **)(param_1 + 4)" * (cast_expression "(undefined **)(param_1 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "PTR_s_1_0_000be3a8 + -0x5438" identifier + number_literal)) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }" else (compound_statement "{\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }" { (if_statement "if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }" { (expression_statement "(*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);" (call_expression "(*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220)" (parenthesized_expression "(*(code *)PTR_sk_addrcopy_000be56c)" ( (pointer_expression "*(code *)PTR_sk_addrcopy_000be56c" * (cast_expression "(code *)PTR_sk_addrcopy_000be56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x10),&local_220)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "&local_220" & identifier) ))) ;) (expression_statement "unaff_s4 = (char *)0x0;" (assignment_expression "unaff_s4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }" else (compound_statement "{\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }" { (if_statement "if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }" if (parenthesized_expression "(iVar2 != 3)" ( (binary_expression "iVar2 != 3" identifier != number_literal) )) (compound_statement "{\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }" { (expression_statement "puVar11 = PTR_s_1_0_000be3a8 + -0x5404;" (assignment_expression "puVar11 = PTR_s_1_0_000be3a8 + -0x5404" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x5404" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);" (call_expression "(*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28)" (parenthesized_expression "(*(code *)PTR___assert_fail_000bed58)" ( (pointer_expression "*(code *)PTR___assert_fail_000bed58" * (cast_expression "(code *)PTR___assert_fail_000bed58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28)" ( identifier , (binary_expression "PTR_s_1_0_000be3a8 + -0x54b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_1_0_000be3a8 + -0x4e28" identifier + number_literal) ))) ;) (expression_statement "pcVar13 = unaff_s2;" (assignment_expression "pcVar13 = unaff_s2" identifier = identifier) ;) (goto_statement "goto LAB_00025c88;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);" (call_expression "(*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200)" (parenthesized_expression "(*(code *)PTR_sk_getaddr_000be3b0)" ( (pointer_expression "*(code *)PTR_sk_getaddr_000be3b0" * (cast_expression "(code *)PTR_sk_getaddr_000be3b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "&local_21c" & identifier) , number_literal ))) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c)" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)(&local_21c)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_21c)" ( (pointer_expression "&local_21c" & identifier) )))) ;) (expression_statement "unaff_s4 = (char *)(iVar2 + 1);" (assignment_expression "unaff_s4 = (char *)(iVar2 + 1)" identifier = (cast_expression "(char *)(iVar2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "local_220 = 1;" (assignment_expression "local_220 = 1" identifier = number_literal) ;) }))) (expression_statement "unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);" (assignment_expression "unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x74),0x10)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "unaff_s3 = unaff_s4 + iVar2 + 9;" (assignment_expression "unaff_s3 = unaff_s4 + iVar2 + 9" identifier = (binary_expression "unaff_s4 + iVar2 + 9" (binary_expression "unaff_s4 + iVar2" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar13 = (char *)safemalloc(unaff_s3,1);" (assignment_expression "pcVar13 = (char *)safemalloc(unaff_s3,1)" identifier = (cast_expression "(char *)safemalloc(unaff_s3,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(unaff_s3,1)" identifier (argument_list "(unaff_s3,1)" ( identifier , number_literal ))))) ;) (expression_statement "(*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);" (call_expression "(*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2)" (parenthesized_expression "(*(code *)PTR_strcpy_000beed0)" ( (pointer_expression "*(code *)PTR_strcpy_000beed0" * (cast_expression "(code *)PTR_strcpy_000beed0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13 + 8,unaff_s2)" ( (binary_expression "pcVar13 + 8" identifier + number_literal) , identifier ))) ;) (expression_statement "*pcVar13 = '\x04';" (assignment_expression "*pcVar13 = '\x04'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\x04'" ' escape_sequence ')) ;) (expression_statement "pcVar13[1] = '\x01';" (assignment_expression "pcVar13[1] = '\x01'" (subscript_expression "pcVar13[1]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);" (assignment_expression "pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8)" (subscript_expression "pcVar13[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)*(undefined4 *)(param_1 + 0x14) >> 8)" ( (binary_expression "(uint)*(undefined4 *)(param_1 + 0x14) >> 8" (binary_expression "(uint)*(undefined4 *)(param_1 + 0x14)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);" (assignment_expression "pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14)" (subscript_expression "pcVar13[3]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(pcVar13 + 4) = local_220;" (assignment_expression "*(undefined4 *)(pcVar13 + 4) = local_220" (pointer_expression "*(undefined4 *)(pcVar13 + 4)" * (cast_expression "(undefined4 *)(pcVar13 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 4)" ( (binary_expression "pcVar13 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);" (call_expression "(*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4)" (parenthesized_expression "(*(code *)PTR_memcpy_000bef30)" ( (pointer_expression "*(code *)PTR_memcpy_000bef30" * (cast_expression "(code *)PTR_memcpy_000bef30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13 + iVar2 + 9,&local_21c,unaff_s4)" ( (binary_expression "pcVar13 + iVar2 + 9" (binary_expression "pcVar13 + iVar2" identifier + identifier) + number_literal) , (pointer_expression "&local_21c" & identifier) , identifier ))) ;) (expression_statement "param_2 = pcVar13;" (assignment_expression "param_2 = pcVar13" identifier = identifier) ;) (expression_statement "param_3 = unaff_s3;" (assignment_expression "param_3 = unaff_s3" identifier = identifier) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(param_1 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 8)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 8)" ( (binary_expression "**(int **)(param_1 + 8) + 8" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "safefree(unaff_s2);" (call_expression "safefree(unaff_s2)" identifier (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "safefree(pcVar13);" (call_expression "safefree(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }" else (compound_statement "{\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }" { (expression_statement "puVar11 = param_1;" (assignment_expression "puVar11 = param_1" identifier = identifier) ;) (expression_statement "pcVar13 = param_2;" (assignment_expression "pcVar13 = param_2" identifier = identifier) ;) (if_statement "if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }" { (labeled_statement "LAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);" statement_identifier : (expression_statement "param_4 = *(int *)(param_1 + 0x58);" (assignment_expression "param_4 = *(int *)(param_1 + 0x58)" identifier = (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;)) (expression_statement "param_3 = *(char **)(param_1 + 0x54);" (assignment_expression "param_3 = *(char **)(param_1 + 0x54)" identifier = (pointer_expression "*(char **)(param_1 + 0x54)" * (cast_expression "(char **)(param_1 + 0x54)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "param_2 = *(char **)(param_1 + 0x50);" (assignment_expression "param_2 = *(char **)(param_1 + 0x50)" identifier = (pointer_expression "*(char **)(param_1 + 0x50)" * (cast_expression "(char **)(param_1 + 0x50)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(**(int **)(puVar11 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(puVar11 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(puVar11 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(puVar11 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(puVar11 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(puVar11 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(puVar11 + 0xc) + 4)" ( (binary_expression "**(int **)(puVar11 + 0xc) + 4" (pointer_expression "**(int **)(puVar11 + 0xc)" * (pointer_expression "*(int **)(puVar11 + 0xc)" * (cast_expression "(int **)(puVar11 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "unaff_s2 = pcVar13;" (assignment_expression "unaff_s2 = pcVar13" identifier = identifier) ;) }) (else_clause "else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }" else (compound_statement "{\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }" { (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" identifier = identifier) ;) (if_statement "if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" if (parenthesized_expression "(param_2 == (char *)0x1)" ( (binary_expression "param_2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar13 = (char *)0x0;\n      }" { (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" else (if_statement "if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" if (parenthesized_expression "(param_2 == (char *)0x3)" ( (binary_expression "param_2 == (char *)0x3" identifier == (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }" { (expression_statement "param_3 = *(char **)(param_1 + 0x70);" (assignment_expression "param_3 = *(char **)(param_1 + 0x70)" identifier = (pointer_expression "*(char **)(param_1 + 0x70)" * (cast_expression "(char **)(param_1 + 0x70)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "param_2 = *(char **)(param_1 + 0x6c);" (assignment_expression "param_2 = *(char **)(param_1 + 0x6c)" identifier = (pointer_expression "*(char **)(param_1 + 0x6c)" * (cast_expression "(char **)(param_1 + 0x6c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();" (assignment_expression "pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))()" identifier = (cast_expression "(char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 0x10)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 0x10)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 0x10)" ( (binary_expression "**(int **)(param_1 + 0xc) + 0x10" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) (else_clause "else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" else (if_statement "if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" if (parenthesized_expression "((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1))" ( (binary_expression "(param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)" (parenthesized_expression "(param_2 == (char *)0x2)" ( (binary_expression "param_2 == (char *)0x2" identifier == (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)(param_1 + 0x44) == 1)" ( (binary_expression "*(int *)(param_1 + 0x44) == 1" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }" { (expression_statement "unaff_s2 = param_1 + 0x34;" (assignment_expression "unaff_s2 = param_1 + 0x34" identifier = (binary_expression "param_1 + 0x34" identifier + number_literal)) ;) (expression_statement "iVar2 = bufchain_size(unaff_s2);" (assignment_expression "iVar2 = bufchain_size(unaff_s2)" identifier = (call_expression "bufchain_size(unaff_s2)" identifier (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }" if (parenthesized_expression "(7 < iVar2)" ( (binary_expression "7 < iVar2" number_literal < identifier) )) (compound_statement "{\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }" { (expression_statement "param_3 = (char *)0x8;" (assignment_expression "param_3 = (char *)0x8" identifier = (cast_expression "(char *)0x8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bufchain_fetch(unaff_s2,&local_21c);" (call_expression "bufchain_fetch(unaff_s2,&local_21c)" identifier (argument_list "(unaff_s2,&local_21c)" ( identifier , (pointer_expression "&local_21c" & identifier) ))) ;) (if_statement "if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }" if (parenthesized_expression "(local_21c == '\0')" ( (binary_expression "local_21c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }" { (if_statement "if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" if (parenthesized_expression "(local_21b == 'Z')" ( (binary_expression "local_21b == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) (compound_statement "{\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }" { (expression_statement "param_2 = (char *)0x8;" (assignment_expression "param_2 = (char *)0x8" identifier = (cast_expression "(char *)0x8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bufchain_consume(unaff_s2);" (call_expression "bufchain_consume(unaff_s2)" identifier (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "proxy_activate(param_1);" (call_expression "proxy_activate(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) }) (else_clause "else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" else (if_statement "if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" if (parenthesized_expression "(local_21b == '\\')" ( (binary_expression "local_21b == '\\'" identifier == (char_literal "'\\'" ' escape_sequence ')) )) (compound_statement "{\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x53a4;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x53a4" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x53a4" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" else (compound_statement "{\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" if (parenthesized_expression "(local_21b == ']')" ( (binary_expression "local_21b == ']'" identifier == (char_literal "']'" ' character ')) )) (compound_statement "{\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x5370;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x5370" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x5370" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" else (compound_statement "{\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x5338;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x5338" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x5338" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) }))))) }) (else_clause "else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }" else (compound_statement "{\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x53ec;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x53ec" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x53ec" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) })) }) (else_clause "else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" else (compound_statement "{\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f41;" (assignment_expression "param_3 = (char *)0x1f41" identifier = (cast_expression "(char *)0x1f41" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x545c;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x545c" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x545c" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))))) }))) }))) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }" if (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_000bef2c)" ( (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_000bef2c" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000bef2c" * (cast_expression "(int *)PTR___stack_chk_guard_000bef2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar13;\n  }" { (return_statement "return pcVar13;" return identifier ;) })) (expression_statement "iVar2 = local_1c;" (assignment_expression "iVar2 = local_1c" identifier = identifier) ;) (expression_statement "puVar11 = PTR___stack_chk_fail_000bef04;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000bef04" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000bef04)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bef04)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bef04)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000bef04" * (cast_expression "(code *)PTR___stack_chk_fail_000bef04" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_25c = **(int **)(puVar11 + 0x990e4);" (assignment_expression "iStack_25c = **(int **)(puVar11 + 0x990e4)" identifier = (pointer_expression "**(int **)(puVar11 + 0x990e4)" * (pointer_expression "*(int **)(puVar11 + 0x990e4)" * (cast_expression "(int **)(puVar11 + 0x990e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x990e4)" ( (binary_expression "puVar11 + 0x990e4" identifier + number_literal) )))))) ;) (expression_statement "puStack_258 = param_1;" (assignment_expression "puStack_258 = param_1" identifier = identifier) ;) (expression_statement "pcStack_254 = pcVar13;" (assignment_expression "pcStack_254 = pcVar13" identifier = identifier) ;) (expression_statement "pcStack_250 = unaff_s2;" (assignment_expression "pcStack_250 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_24c = unaff_s3;" (assignment_expression "pcStack_24c = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_248 = unaff_s4;" (assignment_expression "pcStack_248 = unaff_s4" identifier = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x44) == -1)" ( (binary_expression "*(int *)(iVar2 + 0x44) == -1" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }" { (expression_statement "uStack_460 = CONCAT13(5,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(5,uStack_460._1_3_)" identifier = (call_expression "CONCAT13(5,uStack_460._1_3_)" identifier (argument_list "(5,uStack_460._1_3_)" ( number_literal , (field_expression "uStack_460._1_3_" identifier . field_identifier) )))) ;) (expression_statement "pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);" (assignment_expression "pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" identifier (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x10)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" * (cast_expression "(undefined4 *)(iVar2 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x74)" ( (binary_expression "iVar2 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);" (assignment_expression "pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" identifier (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x11)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" * (cast_expression "(undefined4 *)(iVar2 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x74)" ( (binary_expression "iVar2 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }" if (parenthesized_expression "((*pcVar13 == '\0') && (*pcVar12 == '\0'))" ( (binary_expression "(*pcVar13 == '\0') && (*pcVar12 == '\0')" (parenthesized_expression "(*pcVar13 == '\0')" ( (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }" { (expression_statement "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(1,uStack_460._2_2_)" identifier (argument_list "(1,uStack_460._2_2_)" ( number_literal , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;" (assignment_expression "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" identifier = (binary_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (call_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_)" identifier (argument_list "(uStack_460._0_2_,uStack_460._2_2_)" ( (field_expression "uStack_460._0_2_" identifier . field_identifier) , (field_expression "uStack_460._2_2_" identifier . field_identifier) ))) & number_literal)) ;) (expression_statement "pcStack_46c = (char *)0x3;" (assignment_expression "pcStack_46c = (char *)0x3" identifier = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }" else (compound_statement "{\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }" { (expression_statement "uStack_460._2_2_ = (ushort)(byte)uStack_460;" (assignment_expression "uStack_460._2_2_ = (ushort)(byte)uStack_460" (field_expression "uStack_460._2_2_" identifier . field_identifier) = (cast_expression "(ushort)(byte)uStack_460" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)uStack_460" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "pcStack_46c = (char *)0x3;" (assignment_expression "pcStack_46c = (char *)0x3" identifier = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);" (call_expression "proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c)" identifier (argument_list "(&uStack_460,&pcStack_46c)" ( (pointer_expression "&uStack_460" & identifier) , (pointer_expression "&pcStack_46c" & identifier) ))) ;) (expression_statement "*(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';" (assignment_expression "*(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02'" (pointer_expression "*(char *)((int)&uStack_460 + (int)pcStack_46c)" * (cast_expression "(char *)((int)&uStack_460 + (int)pcStack_46c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_460 + (int)pcStack_46c)" ( (binary_expression "(int)&uStack_460 + (int)pcStack_46c" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + (cast_expression "(int)pcStack_46c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_)" identifier (argument_list "((char)pcStack_46c + -1,uStack_460._2_2_)" ( (binary_expression "(char)pcStack_46c + -1" (cast_expression "(char)pcStack_46c" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "pcStack_46c = pcStack_46c + 1;" (assignment_expression "pcStack_46c = pcStack_46c + 1" identifier = (binary_expression "pcStack_46c + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar12 = (char *)&uStack_460;" (assignment_expression "pcVar12 = (char *)&uStack_460" identifier = (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier))) ;) (expression_statement "param_3 = pcStack_46c;" (assignment_expression "param_3 = pcStack_46c" identifier = identifier) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 8) + 8)" * (cast_expression "(code **)(**(int **)(iVar2 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 8) + 8)" ( (binary_expression "**(int **)(iVar2 + 8) + 8" (pointer_expression "**(int **)(iVar2 + 8)" * (pointer_expression "*(int **)(iVar2 + 8)" * (cast_expression "(int **)(iVar2 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 1;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 1" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_4b0 = unaff_s2;" (assignment_expression "pcStack_4b0 = unaff_s2" identifier = identifier) ;) }) (else_clause "else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }" else (compound_statement "{\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }" { (expression_statement "pcStack_4b0 = param_2;" (assignment_expression "pcStack_4b0 = param_2" identifier = identifier) ;) (if_statement "if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }" { (expression_statement "param_4 = *(int *)(iVar2 + 0x58);" (assignment_expression "param_4 = *(int *)(iVar2 + 0x58)" identifier = (pointer_expression "*(int *)(iVar2 + 0x58)" * (cast_expression "(int *)(iVar2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x58)" ( (binary_expression "iVar2 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "param_3 = *(char **)(iVar2 + 0x54);" (assignment_expression "param_3 = *(char **)(iVar2 + 0x54)" identifier = (pointer_expression "*(char **)(iVar2 + 0x54)" * (cast_expression "(char **)(iVar2 + 0x54)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x54)" ( (binary_expression "iVar2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = *(char **)(iVar2 + 0x50);" (assignment_expression "pcVar12 = *(char **)(iVar2 + 0x50)" identifier = (pointer_expression "*(char **)(iVar2 + 0x50)" * (cast_expression "(char **)(iVar2 + 0x50)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x50)" ( (binary_expression "iVar2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" else (if_statement "if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" if (parenthesized_expression "(param_2 == (char *)0x1)" ( (binary_expression "param_2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }" { (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) }) (else_clause "else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" else (if_statement "if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" if (parenthesized_expression "(param_2 == (char *)0x3)" ( (binary_expression "param_2 == (char *)0x3" identifier == (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }" { (expression_statement "param_3 = *(char **)(iVar2 + 0x70);" (assignment_expression "param_3 = *(char **)(iVar2 + 0x70)" identifier = (pointer_expression "*(char **)(iVar2 + 0x70)" * (cast_expression "(char **)(iVar2 + 0x70)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x70)" ( (binary_expression "iVar2 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = *(char **)(iVar2 + 0x6c);" (assignment_expression "pcVar12 = *(char **)(iVar2 + 0x6c)" identifier = (pointer_expression "*(char **)(iVar2 + 0x6c)" * (cast_expression "(char **)(iVar2 + 0x6c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x6c)" ( (binary_expression "iVar2 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();" (assignment_expression "pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))()" identifier = (cast_expression "(char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 0x10)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 0x10)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 0x10)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 0x10" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) (else_clause "else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" else (compound_statement "{\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" { (expression_statement "pcVar5 = param_2;" (assignment_expression "pcVar5 = param_2" identifier = identifier) ;) (if_statement "if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }" if (parenthesized_expression "(param_2 == (char *)0x2)" ( (binary_expression "param_2 == (char *)0x2" identifier == (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }" { (expression_statement "pcVar5 = (char *)(iVar2 + 0x34);" (assignment_expression "pcVar5 = (char *)(iVar2 + 0x34)" identifier = (cast_expression "(char *)(iVar2 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) ;) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" identifier = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar2 + 0x44) == 1)" ( (binary_expression "*(int *)(iVar2 + 0x44) == 1" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }" { (expression_statement "iVar8 = bufchain_size(pcVar5);" (assignment_expression "iVar8 = bufchain_size(pcVar5)" identifier = (call_expression "bufchain_size(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "param_3 = (char *)0x2;" (assignment_expression "param_3 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) (if_statement "if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }" if (parenthesized_expression "(1 < iVar8)" ( (binary_expression "1 < iVar8" number_literal < identifier) )) (compound_statement "{\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }" { (expression_statement "bufchain_fetch(pcVar5,&uStack_460);" (call_expression "bufchain_fetch(pcVar5,&uStack_460)" identifier (argument_list "(pcVar5,&uStack_460)" ( identifier , (pointer_expression "&uStack_460" & identifier) ))) ;) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }" if (parenthesized_expression "(uStack_460._0_1_ == '\x05')" ( (binary_expression "uStack_460._0_1_ == '\x05'" (field_expression "uStack_460._0_1_" identifier . field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }" { (if_statement "if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" if (parenthesized_expression "(uStack_460._1_1_ == '\0')" ( (binary_expression "uStack_460._1_1_ == '\0'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }" { (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 2;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 2" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" else (if_statement "if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" if (parenthesized_expression "(uStack_460._1_1_ == '\x01')" ( (binary_expression "uStack_460._1_1_ == '\x01'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }" { (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 4;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 4" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" else (if_statement "if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" if (parenthesized_expression "(uStack_460._1_1_ == '\x02')" ( (binary_expression "uStack_460._1_1_ == '\x02'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }" { (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 5;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 5" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" else (compound_statement "{\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }" if (parenthesized_expression "(uStack_460._1_1_ != '\x03')" ( (binary_expression "uStack_460._1_1_ != '\x03'" (field_expression "uStack_460._1_1_" identifier . field_identifier) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x52cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x52cc)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x52cc" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 6;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 6" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) }))))))) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_2 = (char *)0x2;" (assignment_expression "param_2 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bufchain_consume(pcVar5);" (call_expression "bufchain_consume(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar8 = *(int *)(iVar2 + 0x44)" identifier = (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00026064;" goto statement_identifier ;) })) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5304)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5304)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5304" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }" else (compound_statement "{\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }" { (expression_statement "iVar8 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar8 = *(int *)(iVar2 + 0x44)" identifier = (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" statement_identifier : (if_statement "if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" if (parenthesized_expression "(iVar8 == 7)" ( (binary_expression "iVar8 == 7" identifier == number_literal) )) (compound_statement "{\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }" { (expression_statement "iVar14 = iVar2 + 0x34;" (assignment_expression "iVar14 = iVar2 + 0x34" identifier = (binary_expression "iVar2 + 0x34" identifier + number_literal)) ;) (expression_statement "iVar8 = bufchain_size(iVar14);" (assignment_expression "iVar8 = bufchain_size(iVar14)" identifier = (call_expression "bufchain_size(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "param_3 = (char *)0x2;" (assignment_expression "param_3 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }" if (parenthesized_expression "(1 < iVar8)" ( (binary_expression "1 < iVar8" number_literal < identifier) )) (compound_statement "{\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }" { (expression_statement "bufchain_fetch(iVar14,&uStack_460);" (call_expression "bufchain_fetch(iVar14,&uStack_460)" identifier (argument_list "(iVar14,&uStack_460)" ( identifier , (pointer_expression "&uStack_460" & identifier) ))) ;) (if_statement "if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }" if (parenthesized_expression "(uStack_460._0_1_ == '\x01')" ( (binary_expression "uStack_460._0_1_ == '\x01'" (field_expression "uStack_460._0_1_" identifier . field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }" if (parenthesized_expression "(uStack_460._1_1_ == '\0')" ( (binary_expression "uStack_460._1_1_ == '\0'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }" { (expression_statement "bufchain_consume(iVar14,2);" (call_expression "bufchain_consume(iVar14,2)" identifier (argument_list "(iVar14,2)" ( identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 2;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 2" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000262a8;" goto statement_identifier ;) })) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5244)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5244)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5244" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);" (assignment_expression "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5290)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5290)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5290" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) }) (else_clause "else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" else (if_statement "if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" if (parenthesized_expression "((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0))" ( (binary_expression "(iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)" (parenthesized_expression "(iVar8 != 8)" ( (binary_expression "iVar8 != 8" identifier != number_literal) )) || (parenthesized_expression "(pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)" ( (comma_expression "pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0" (assignment_expression "pcVar13 = (char *)proxy_socks5_handlechap(iVar2)" identifier = (cast_expression "(char *)proxy_socks5_handlechap(iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "proxy_socks5_handlechap(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))))) , (comma_expression "pcVar12 = param_2,\n                  pcVar13 == (char *)0x0" (assignment_expression "pcVar12 = param_2" identifier = identifier) , (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" { (expression_statement "iVar8 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar8 = *(int *)(iVar2 + 0x44)" identifier = (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }" { (labeled_statement "LAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));" statement_identifier : (expression_statement "iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));" (assignment_expression "iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10))" identifier = (call_expression "(**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10))" (parenthesized_expression "(**(code **)(puVar11 + 0x98720))" ( (pointer_expression "**(code **)(puVar11 + 0x98720)" * (pointer_expression "*(code **)(puVar11 + 0x98720)" * (cast_expression "(code **)(puVar11 + 0x98720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98720)" ( (binary_expression "puVar11 + 0x98720" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar2 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) )))) ;)) (if_statement "if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }" { (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,1);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,1)" identifier = (call_expression "CONCAT31(uStack_460._0_3_,1)" identifier (argument_list "(uStack_460._0_3_,1)" ( (field_expression "uStack_460._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);" (call_expression "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" (parenthesized_expression "(**(code **)(puVar11 + 0x98724))" ( (pointer_expression "**(code **)(puVar11 + 0x98724)" * (pointer_expression "*(code **)(puVar11 + 0x98724)" * (cast_expression "(code **)(puVar11 + 0x98724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98724)" ( (binary_expression "puVar11 + 0x98724" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) , (pointer_expression "&uStack_45c" & identifier) ))) ;) (expression_statement "param_3 = (char *)0xa;" (assignment_expression "param_3 = (char *)0xa" identifier = (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" else (if_statement "if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }" { (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,4);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,4)" identifier = (call_expression "CONCAT31(uStack_460._0_3_,4)" identifier (argument_list "(uStack_460._0_3_,4)" ( (field_expression "uStack_460._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);" (call_expression "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" (parenthesized_expression "(**(code **)(puVar11 + 0x98724))" ( (pointer_expression "**(code **)(puVar11 + 0x98724)" * (pointer_expression "*(code **)(puVar11 + 0x98724)" * (cast_expression "(code **)(puVar11 + 0x98724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98724)" ( (binary_expression "puVar11 + 0x98724" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) , (pointer_expression "&uStack_45c" & identifier) ))) ;) (expression_statement "param_3 = (char *)0x16;" (assignment_expression "param_3 = (char *)0x16" identifier = (cast_expression "(char *)0x16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" else (compound_statement "{\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" { (if_statement "if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }" if (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) (compound_statement "{\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }" { (expression_statement "param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;" (assignment_expression "param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40" identifier = (binary_expression "*(int *)(puVar11 + 0x98560) + -0x4e40" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);" (assignment_expression "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x54b4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x54b4)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x54b4" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);" (call_expression "(**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a)" (parenthesized_expression "(**(code **)(puVar11 + 0x98f10))" ( (pointer_expression "**(code **)(puVar11 + 0x98f10)" * (pointer_expression "*(code **)(puVar11 + 0x98f10)" * (cast_expression "(code **)(puVar11 + 0x98f10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98f10)" ( (binary_expression "puVar11 + 0x98f10" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5404" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) , identifier , number_literal ))) ;) (goto_statement "goto LAB_0002640c;" goto statement_identifier ;) })) (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,3);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,3)" identifier = (call_expression "CONCAT31(uStack_460._0_3_,3)" identifier (argument_list "(uStack_460._0_3_,3)" ( (field_expression "uStack_460._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);" (call_expression "(**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100)" (parenthesized_expression "(**(code **)(puVar11 + 0x98568))" ( (pointer_expression "**(code **)(puVar11 + 0x98568)" * (pointer_expression "*(code **)(puVar11 + 0x98568)" * (cast_expression "(code **)(puVar11 + 0x98568)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98568)" ( (binary_expression "puVar11 + 0x98568" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) , (binary_expression "(int)&uStack_45c + 1" (cast_expression "(int)&uStack_45c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_45c" & identifier)) + number_literal) , number_literal ))) ;) (expression_statement "cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);" (assignment_expression "cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1)" identifier = (call_expression "(**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" ( (pointer_expression "**(code **)(puVar11 + 0x9902c)" * (pointer_expression "*(code **)(puVar11 + 0x9902c)" * (cast_expression "(code **)(puVar11 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9902c)" ( (binary_expression "puVar11 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_45c + 1)" ( (binary_expression "(int)&uStack_45c + 1" (cast_expression "(int)&uStack_45c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_45c" & identifier)) + number_literal) )))) ;) (expression_statement "uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);" (assignment_expression "uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_)" identifier = (call_expression "CONCAT13(cVar10,uStack_45c._1_3_)" identifier (argument_list "(cVar10,uStack_45c._1_3_)" ( identifier , (field_expression "uStack_45c._1_3_" identifier . field_identifier) )))) ;) (expression_statement "param_3 = (char *)(cVar10 + 7);" (assignment_expression "param_3 = (char *)(cVar10 + 7)" identifier = (cast_expression "(char *)(cVar10 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cVar10 + 7)" ( (binary_expression "cVar10 + 7" identifier + number_literal) )))) ;) }))))) (expression_statement "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(1,uStack_460._2_2_)" identifier (argument_list "(1,uStack_460._2_2_)" ( number_literal , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT13(5,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(5,uStack_460._1_3_)" identifier = (call_expression "CONCAT13(5,uStack_460._1_3_)" identifier (argument_list "(5,uStack_460._1_3_)" ( number_literal , (field_expression "uStack_460._1_3_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;" (assignment_expression "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" identifier = (binary_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (call_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_)" identifier (argument_list "(uStack_460._0_2_,uStack_460._2_2_)" ( (field_expression "uStack_460._0_2_" identifier . field_identifier) , (field_expression "uStack_460._2_2_" identifier . field_identifier) ))) & number_literal)) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar2 + 0x14);" (assignment_expression "uVar9 = *(undefined4 *)(iVar2 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x14)" * (cast_expression "(undefined4 *)(iVar2 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);" (assignment_expression "acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8)" (subscript_expression "acStack_462[(int)param_3]" identifier [ (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(char)((uint)uVar9 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar9 >> 8)" ( (binary_expression "(uint)uVar9 >> 8" (cast_expression "(uint)uVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(acStack_462 + 1)[(int)param_3] = (char)uVar9;" (assignment_expression "(acStack_462 + 1)[(int)param_3] = (char)uVar9" (subscript_expression "(acStack_462 + 1)[(int)param_3]" (parenthesized_expression "(acStack_462 + 1)" ( (binary_expression "acStack_462 + 1" identifier + number_literal) )) [ (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(char)uVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pcVar12 = (char *)&uStack_460;" (assignment_expression "pcVar12 = (char *)&uStack_460" identifier = (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 8) + 8)" * (cast_expression "(code **)(**(int **)(iVar2 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 8) + 8)" ( (binary_expression "**(int **)(iVar2 + 8) + 8" (pointer_expression "**(int **)(iVar2 + 8)" * (pointer_expression "*(int **)(iVar2 + 8)" * (cast_expression "(int **)(iVar2 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 3" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" else (if_statement "if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "(iVar8 == 3)" ( (binary_expression "iVar8 == 3" identifier == number_literal) )) (compound_statement "{\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }" { (labeled_statement "LAB_0002640c:\n              iVar14 = iVar2 + 0x34;" statement_identifier : (expression_statement "iVar14 = iVar2 + 0x34;" (assignment_expression "iVar14 = iVar2 + 0x34" identifier = (binary_expression "iVar2 + 0x34" identifier + number_literal)) ;)) (expression_statement "iVar8 = bufchain_size(iVar14);" (assignment_expression "iVar8 = bufchain_size(iVar14)" identifier = (call_expression "bufchain_size(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "param_3 = &DAT_00000005;" (assignment_expression "param_3 = &DAT_00000005" identifier = (pointer_expression "&DAT_00000005" & identifier)) ;) (if_statement "if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }" if (parenthesized_expression "(iVar8 < 5)" ( (binary_expression "iVar8 < 5" identifier < number_literal) )) (compound_statement "{\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }" { (labeled_statement "LAB_00026430:\n                pcVar13 = (char *)0x1;" statement_identifier : (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" identifier = identifier) ;) }) (else_clause "else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }" else (compound_statement "{\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }" { (expression_statement "bufchain_fetch(iVar14,&cStack_468);" (call_expression "bufchain_fetch(iVar14,&cStack_468)" identifier (argument_list "(iVar14,&cStack_468)" ( identifier , (pointer_expression "&cStack_468" & identifier) ))) ;) (expression_statement "pcStack_4b0 = (char *)(int)cStack_467;" (assignment_expression "pcStack_4b0 = (char *)(int)cStack_467" identifier = (cast_expression "(char *)(int)cStack_467" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cStack_467" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }" if (parenthesized_expression "(cStack_468 == '\x05')" ( (binary_expression "cStack_468 == '\x05'" identifier == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }" { (if_statement "if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }" if (parenthesized_expression "(pcStack_4b0 == (char *)0x0)" ( (binary_expression "pcStack_4b0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }" { (if_statement "if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" if (parenthesized_expression "(cStack_465 == '\x03')" ( (binary_expression "cStack_465 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n                      param_2 = (char *)(bStack_464 + 6);\n                    }" { (expression_statement "param_2 = (char *)(bStack_464 + 6);" (assignment_expression "param_2 = (char *)(bStack_464 + 6)" identifier = (cast_expression "(char *)(bStack_464 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bStack_464 + 6)" ( (binary_expression "bStack_464 + 6" identifier + number_literal) )))) ;) }) (else_clause "else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" else (if_statement "if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" if (parenthesized_expression "(cStack_465 == '\x04')" ( (binary_expression "cStack_465 == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                      param_2 = (char *)0x16;\n                    }" { (expression_statement "param_2 = (char *)0x16;" (assignment_expression "param_2 = (char *)0x16" identifier = (cast_expression "(char *)0x16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" else (compound_statement "{\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }" if (parenthesized_expression "(cStack_465 != '\x01')" ( (binary_expression "cStack_465 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x50dc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x50dc)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x50dc" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "param_2 = (char *)0xa;" (assignment_expression "param_2 = (char *)0xa" identifier = (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))) (expression_statement "iVar8 = bufchain_size(iVar14);" (assignment_expression "iVar8 = bufchain_size(iVar14)" identifier = (call_expression "bufchain_size(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "pcVar5 = param_2;" (assignment_expression "pcVar5 = param_2" identifier = identifier) ;) (if_statement "if (iVar8 < (int)param_2) goto LAB_00026430;" if (parenthesized_expression "(iVar8 < (int)param_2)" ( (binary_expression "iVar8 < (int)param_2" identifier < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00026430;" goto statement_identifier ;)) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) (expression_statement "bufchain_consume(iVar14);" (call_expression "bufchain_consume(iVar14)" identifier (argument_list "(iVar14)" ( identifier ))) ;) (expression_statement "proxy_activate(iVar2);" (call_expression "proxy_activate(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_4b0 = param_2;" (assignment_expression "pcStack_4b0 = param_2" identifier = identifier) ;) }) (else_clause "else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }" else (compound_statement "{\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }" { (expression_statement "iVar8 = *(int *)(puVar11 + 0x98560);" (assignment_expression "iVar8 = *(int *)(puVar11 + 0x98560)" identifier = (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) ))))) ;) (expression_statement "uStack_460 = *(uint *)(iVar8 + -0x51d0);" (assignment_expression "uStack_460 = *(uint *)(iVar8 + -0x51d0)" identifier = (pointer_expression "*(uint *)(iVar8 + -0x51d0)" * (cast_expression "(uint *)(iVar8 + -0x51d0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x51d0)" ( (binary_expression "iVar8 + -0x51d0" identifier + number_literal) ))))) ;) (expression_statement "uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);" (assignment_expression "uStack_45c = *(undefined4 *)(iVar8 + -0x51cc)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + -0x51cc)" * (cast_expression "(undefined4 *)(iVar8 + -0x51cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x51cc)" ( (binary_expression "iVar8 + -0x51cc" identifier + number_literal) ))))) ;) (expression_statement "uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);" (assignment_expression "uStack_458 = *(undefined4 *)(iVar8 + -0x51c8)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + -0x51c8)" * (cast_expression "(undefined4 *)(iVar8 + -0x51c8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x51c8)" ( (binary_expression "iVar8 + -0x51c8" identifier + number_literal) ))))) ;) (expression_statement "uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);" (assignment_expression "uStack_454 = *(undefined2 *)(iVar8 + -0x51c4)" identifier = (pointer_expression "*(undefined2 *)(iVar8 + -0x51c4)" * (cast_expression "(undefined2 *)(iVar8 + -0x51c4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x51c4)" ( (binary_expression "iVar8 + -0x51c4" identifier + number_literal) ))))) ;) (if_statement "if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }" if (parenthesized_expression "(((uint)(pcStack_4b0 + -1) & 0xff) < 8)" ( (binary_expression "((uint)(pcStack_4b0 + -1) & 0xff) < 8" (parenthesized_expression "((uint)(pcStack_4b0 + -1) & 0xff)" ( (binary_expression "(uint)(pcStack_4b0 + -1) & 0xff" (call_expression "(uint)(pcStack_4b0 + -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcStack_4b0 + -1)" ( (binary_expression "pcStack_4b0 + -1" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }" { comment comment (expression_statement "pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();" (assignment_expression "pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))()" identifier = (cast_expression "(char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))()" (parenthesized_expression "(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))" ( (pointer_expression "*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8))" * (cast_expression "(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8))" ( (binary_expression "puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)" identifier + (cast_expression "(int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)" ( (binary_expression ""Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8" (binary_expression ""Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" (string_literal ""Server requested password change"" " string_content ") + (pointer_expression "*(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" * (cast_expression "(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" ( (binary_expression "*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4" (binary_expression "*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) + (binary_expression "((uint)(pcStack_4b0 + -1) & 0xff) * 4" (parenthesized_expression "((uint)(pcStack_4b0 + -1) & 0xff)" ( (binary_expression "(uint)(pcStack_4b0 + -1) & 0xff" (call_expression "(uint)(pcStack_4b0 + -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcStack_4b0 + -1)" ( (binary_expression "pcStack_4b0 + -1" identifier + number_literal) ))) & number_literal) )) * number_literal)) ))))) + number_literal) )))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar13;" return identifier ;) })) (expression_statement "iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);" (assignment_expression "iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460)" identifier = (call_expression "(**(code **)(puVar11 + 0x9902c))(&uStack_460)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" ( (pointer_expression "**(code **)(puVar11 + 0x9902c)" * (pointer_expression "*(code **)(puVar11 + 0x9902c)" * (cast_expression "(code **)(puVar11 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9902c)" ( (binary_expression "puVar11 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "(&uStack_460)" ( (pointer_expression "&uStack_460" & identifier) )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);" (call_expression "(**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100)" (parenthesized_expression "(**(code **)(puVar11 + 0x98f00))" ( (pointer_expression "**(code **)(puVar11 + 0x98f00)" * (pointer_expression "*(code **)(puVar11 + 0x98f00)" * (cast_expression "(code **)(puVar11 + 0x98f00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98f00)" ( (binary_expression "puVar11 + 0x98f00" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100)" ( (binary_expression "(int)&uStack_460 + iVar8" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + identifier) , number_literal , number_literal , (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5100" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)&uStack_460;" (assignment_expression "pcVar12 = (char *)&uStack_460" identifier = (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }" else (compound_statement "{\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -21000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -21000)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -21000" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) }) (else_clause "else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" else (if_statement "if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "(iVar8 == 4)" ( (binary_expression "iVar8 == 4" identifier == number_literal) )) (compound_statement "{\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x509c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x509c)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x509c" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" else (if_statement "if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "(iVar8 == 5)" ( (binary_expression "iVar8 == 5" identifier == number_literal) )) (compound_statement "{\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }" { (expression_statement "unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);" (assignment_expression "unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" identifier (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x10)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" * (cast_expression "(undefined4 *)(iVar2 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x74)" ( (binary_expression "iVar2 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);" (assignment_expression "unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" identifier (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x11)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" * (cast_expression "(undefined4 *)(iVar2 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x74)" ( (binary_expression "iVar2 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }" if (parenthesized_expression "((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0'))" ( (binary_expression "(*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')" (parenthesized_expression "(*unaff_s3 == '\0')" ( (binary_expression "*unaff_s3 == '\0'" (pointer_expression "*unaff_s3" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_4 = 0, *unaff_s4 == '\0')" ( (comma_expression "param_4 = 0, *unaff_s4 == '\0'" (assignment_expression "param_4 = 0" identifier = number_literal) , (binary_expression "*unaff_s4 == '\0'" (pointer_expression "*unaff_s4" * identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5068)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5068)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5068" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }" else (compound_statement "{\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }" { (expression_statement "pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);" (assignment_expression "pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3)" identifier = (cast_expression "(char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar11 + 0x9902c))(unaff_s3)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" ( (pointer_expression "**(code **)(puVar11 + 0x9902c)" * (pointer_expression "*(code **)(puVar11 + 0x9902c)" * (cast_expression "(code **)(puVar11 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9902c)" ( (binary_expression "puVar11 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "(unaff_s3)" ( identifier ))))) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }" if (parenthesized_expression "(0 < (int)pcVar13)" ( (binary_expression "0 < (int)pcVar13" number_literal < (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  pcVar5 = pcVar13;\n                }" { (expression_statement "pcVar5 = pcVar13;" (assignment_expression "pcVar5 = pcVar13" identifier = identifier) ;) })) (if_statement "if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }" if (parenthesized_expression "(0xff < (int)pcVar5)" ( (binary_expression "0xff < (int)pcVar5" number_literal < (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  pcVar5 = (char *)0xff;\n                }" { (expression_statement "pcVar5 = (char *)0xff;" (assignment_expression "pcVar5 = (char *)0xff" identifier = (cast_expression "(char *)0xff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);" (assignment_expression "iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4)" identifier = (call_expression "(**(code **)(puVar11 + 0x9902c))(unaff_s4)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" ( (pointer_expression "**(code **)(puVar11 + 0x9902c)" * (pointer_expression "*(code **)(puVar11 + 0x9902c)" * (cast_expression "(code **)(puVar11 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9902c)" ( (binary_expression "puVar11 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier )))) ;) (if_statement "if (iVar8 < 1) {\n                  iVar8 = 1;\n                }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n                  iVar8 = 1;\n                }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) })) (expression_statement "unaff_s6 = 0xff;" (assignment_expression "unaff_s6 = 0xff" identifier = number_literal) ;) (if_statement "if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }" if (parenthesized_expression "(iVar8 < 0x100)" ( (binary_expression "iVar8 < 0x100" identifier < number_literal) )) (compound_statement "{\n                  unaff_s6 = iVar8;\n                }" { (expression_statement "unaff_s6 = iVar8;" (assignment_expression "unaff_s6 = iVar8" identifier = identifier) ;) })) (expression_statement "uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12((char)pcVar5,uStack_460._2_2_)" identifier (argument_list "((char)pcVar5,uStack_460._2_2_)" ( (cast_expression "(char)pcVar5" ( (type_descriptor "char" primitive_type) ) identifier) , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT13(1,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(1,uStack_460._1_3_)" identifier = (call_expression "CONCAT13(1,uStack_460._1_3_)" identifier (argument_list "(1,uStack_460._1_3_)" ( number_literal , (field_expression "uStack_460._1_3_" identifier . field_identifier) )))) ;) (expression_statement "param_4 = 0x1ff;" (assignment_expression "param_4 = 0x1ff" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);" (call_expression "(**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5)" (parenthesized_expression "(**(code **)(puVar11 + 0x9905c))" ( (pointer_expression "**(code **)(puVar11 + 0x9905c)" * (pointer_expression "*(code **)(puVar11 + 0x9905c)" * (cast_expression "(code **)(puVar11 + 0x9905c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9905c)" ( (binary_expression "puVar11 + 0x9905c" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_460 + 2,unaff_s3,pcVar5)" ( (binary_expression "(int)&uStack_460 + 2" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + number_literal) , identifier , identifier ))) ;) (expression_statement "pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;" (assignment_expression "pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6" (subscript_expression "pcVar5[(int)&uStack_460 + 2]" identifier [ (binary_expression "(int)&uStack_460 + 2" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + number_literal) ]) = (cast_expression "(char)unaff_s6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "unaff_s3 = (char *)&uStack_460;" (assignment_expression "unaff_s3 = (char *)&uStack_460" identifier = (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier))) ;) (expression_statement "(**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);" (call_expression "(**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6)" (parenthesized_expression "(**(code **)(puVar11 + 0x990e8))" ( (pointer_expression "**(code **)(puVar11 + 0x990e8)" * (pointer_expression "*(code **)(puVar11 + 0x990e8)" * (cast_expression "(code **)(puVar11 + 0x990e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x990e8)" ( (binary_expression "puVar11 + 0x990e8" identifier + number_literal) ))))) )) (argument_list "(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6)" ( (binary_expression "unaff_s3 + (int)(pcVar5 + 3)" identifier + (cast_expression "(int)(pcVar5 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar5 + 3)" ( (binary_expression "pcVar5 + 3" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "param_3 = pcVar5 + unaff_s6 + 3;" (assignment_expression "param_3 = pcVar5 + unaff_s6 + 3" identifier = (binary_expression "pcVar5 + unaff_s6 + 3" (binary_expression "pcVar5 + unaff_s6" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar12 = unaff_s3;" (assignment_expression "pcVar12 = unaff_s3" identifier = identifier) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 8) + 8)" * (cast_expression "(code **)(**(int **)(iVar2 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 8) + 8)" ( (binary_expression "**(int **)(iVar2 + 8) + 8" (pointer_expression "**(int **)(iVar2 + 8)" * (pointer_expression "*(int **)(iVar2 + 8)" * (cast_expression "(int **)(iVar2 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 7;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 7" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" identifier = identifier) ;) }))) }) (else_clause "else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" else (if_statement "if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0))" ( (binary_expression "(iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)" (parenthesized_expression "(iVar8 != 6)" ( (binary_expression "iVar8 != 6" identifier != number_literal) )) || (parenthesized_expression "(pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)" ( (comma_expression "pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0" (assignment_expression "pcVar13 = (char *)proxy_socks5_selectchap(iVar2)" identifier = (cast_expression "(char *)proxy_socks5_selectchap(iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "proxy_socks5_selectchap(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))))) , (comma_expression "pcVar12 = param_2,\n                    pcVar13 == (char *)0x0" (assignment_expression "pcVar12 = param_2" identifier = identifier) , (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_00025ec0;" goto statement_identifier ;)))))))))) }))))) }))) }) (else_clause "else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }" else (compound_statement "{\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }" { (labeled_statement "LAB_00025ec0:\n        param_4 = 0;" statement_identifier : (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;)) (expression_statement "param_3 = (char *)0x1f41;" (assignment_expression "param_3 = (char *)0x1f41" identifier = (cast_expression "(char *)0x1f41" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5014)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5014)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5014" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" identifier = identifier) ;) }))) }))))))) }))) (labeled_statement "LAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }" statement_identifier : (if_statement "if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }" if (parenthesized_expression "(iStack_25c == **(int **)(puVar11 + 0x990e4))" ( (binary_expression "iStack_25c == **(int **)(puVar11 + 0x990e4)" identifier == (pointer_expression "**(int **)(puVar11 + 0x990e4)" * (pointer_expression "*(int **)(puVar11 + 0x990e4)" * (cast_expression "(int **)(puVar11 + 0x990e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x990e4)" ( (binary_expression "puVar11 + 0x990e4" identifier + number_literal) )))))) )) (compound_statement "{\n    return pcVar13;\n  }" { (return_statement "return pcVar13;" return identifier ;) }))) (expression_statement "pcVar19 = *(code **)(puVar11 + 0x990bc);" (assignment_expression "pcVar19 = *(code **)(puVar11 + 0x990bc)" identifier = (pointer_expression "*(code **)(puVar11 + 0x990bc)" * (cast_expression "(code **)(puVar11 + 0x990bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x990bc)" ( (binary_expression "puVar11 + 0x990bc" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iStack_25c;" (assignment_expression "iVar8 = iStack_25c" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar20 = pcVar19 + 0x9fa7c;" (assignment_expression "pcVar20 = pcVar19 + 0x9fa7c" identifier = (binary_expression "pcVar19 + 0x9fa7c" identifier + number_literal)) ;) (expression_statement "iStack_4bc = **(int **)(pcVar19 + 0x98638);" (assignment_expression "iStack_4bc = **(int **)(pcVar19 + 0x98638)" identifier = (pointer_expression "**(int **)(pcVar19 + 0x98638)" * (pointer_expression "*(int **)(pcVar19 + 0x98638)" * (cast_expression "(int **)(pcVar19 + 0x98638)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98638)" ( (binary_expression "pcVar19 + 0x98638" identifier + number_literal) )))))) ;) (expression_statement "iVar14 = param_4;" (assignment_expression "iVar14 = param_4" identifier = identifier) ;) (expression_statement "iStack_4b8 = iVar2;" (assignment_expression "iStack_4b8 = iVar2" identifier = identifier) ;) (expression_statement "pcStack_4b4 = pcVar13;" (assignment_expression "pcStack_4b4 = pcVar13" identifier = identifier) ;) (expression_statement "pcStack_4ac = unaff_s3;" (assignment_expression "pcStack_4ac = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_4a8 = unaff_s4;" (assignment_expression "pcStack_4a8 = unaff_s4" identifier = identifier) ;) (expression_statement "uStack_4a4 = unaff_s5;" (assignment_expression "uStack_4a4 = unaff_s5" identifier = identifier) ;) (expression_statement "iStack_4a0 = unaff_s6;" (assignment_expression "iStack_4a0 = unaff_s6" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }" { (expression_statement "pcVar13 = (char *)0xc;" (assignment_expression "pcVar13 = (char *)0xc" identifier = (cast_expression "(char *)0xc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar2 = conf_get_int(param_4,0xc);" (assignment_expression "iVar2 = conf_get_int(param_4,0xc)" identifier = (call_expression "conf_get_int(param_4,0xc)" identifier (argument_list "(param_4,0xc)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }" { (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12)" identifier = (call_expression "(**(code **)(pcVar19 + 0x97c8c))(pcVar12)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c8c))" ( (pointer_expression "**(code **)(pcVar19 + 0x97c8c)" * (pointer_expression "*(code **)(pcVar19 + 0x97c8c)" * (cast_expression "(code **)(pcVar19 + 0x97c8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97c8c)" ( (binary_expression "pcVar19 + 0x97c8c" identifier + number_literal) ))))) )) (argument_list "(pcVar12)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\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)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar2 = 0;\n    }" else (compound_statement "{\n      iVar2 = 0;\n    }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }" else (compound_statement "{\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }" { (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c88))();" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c88))()" identifier = (call_expression "(**(code **)(pcVar19 + 0x97c88))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c88))" ( (pointer_expression "**(code **)(pcVar19 + 0x97c88)" * (pointer_expression "*(code **)(pcVar19 + 0x97c88)" * (cast_expression "(code **)(pcVar19 + 0x97c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97c88)" ( (binary_expression "pcVar19 + 0x97c88" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar13 = (char *)0xc;" (assignment_expression "pcVar13 = (char *)0xc" identifier = (cast_expression "(char *)0xc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\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)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) (expression_statement "iVar2 = conf_get_int(param_4,0xc);" (assignment_expression "iVar2 = conf_get_int(param_4,0xc)" identifier = (call_expression "conf_get_int(param_4,0xc)" identifier (argument_list "(param_4,0xc)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }" { (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12)" identifier = (call_expression "(**(code **)(pcVar19 + 0x97c8c))(pcVar12)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c8c))" ( (pointer_expression "**(code **)(pcVar19 + 0x97c8c)" * (pointer_expression "*(code **)(pcVar19 + 0x97c8c)" * (cast_expression "(code **)(pcVar19 + 0x97c8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97c8c)" ( (binary_expression "pcVar19 + 0x97c8c" identifier + number_literal) ))))) )) (argument_list "(pcVar12)" ( identifier )))) ;) (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)) ;) (if_statement "if (iVar2 != 0) goto LAB_00026c80;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8)" identifier = (call_expression "(**(code **)(pcVar19 + 0x97c90))(iVar8)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c90))" ( (pointer_expression "**(code **)(pcVar19 + 0x97c90)" * (pointer_expression "*(code **)(pcVar19 + 0x97c90)" * (cast_expression "(code **)(pcVar19 + 0x97c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97c90)" ( (binary_expression "pcVar19 + 0x97c90" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "param_3 = &DAT_00000040;" (assignment_expression "param_3 = &DAT_00000040" identifier = (pointer_expression "&DAT_00000040" & identifier)) ;) (if_statement "if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\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)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) })) (expression_statement "param_3 = &DAT_00000040;" (assignment_expression "param_3 = &DAT_00000040" identifier = (pointer_expression "&DAT_00000040" & identifier)) ;) (expression_statement "(**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);" (call_expression "(**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97abc))" ( (pointer_expression "**(code **)(pcVar19 + 0x97abc)" * (pointer_expression "*(code **)(pcVar19 + 0x97abc)" * (cast_expression "(code **)(pcVar19 + 0x97abc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97abc)" ( (binary_expression "pcVar19 + 0x97abc" identifier + number_literal) ))))) )) (argument_list "(iVar8,auStack_4fc)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc)" identifier = (call_expression "(**(code **)(pcVar19 + 0x98580))(auStack_4fc)" (parenthesized_expression "(**(code **)(pcVar19 + 0x98580))" ( (pointer_expression "**(code **)(pcVar19 + 0x98580)" * (pointer_expression "*(code **)(pcVar19 + 0x98580)" * (cast_expression "(code **)(pcVar19 + 0x98580)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98580)" ( (binary_expression "pcVar19 + 0x98580" identifier + number_literal) ))))) )) (argument_list "(auStack_4fc)" ( identifier )))) ;) }))) (expression_statement "iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12)" identifier = (call_expression "(**(code **)(pcVar19 + 0x98580))(pcVar12)" (parenthesized_expression "(**(code **)(pcVar19 + 0x98580))" ( (pointer_expression "**(code **)(pcVar19 + 0x98580)" * (pointer_expression "*(code **)(pcVar19 + 0x98580)" * (cast_expression "(code **)(pcVar19 + 0x98580)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98580)" ( (binary_expression "pcVar19 + 0x98580" identifier + number_literal) ))))) )) (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "pcVar13 = (char *)0xa;" (assignment_expression "pcVar13 = (char *)0xa" identifier = (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = conf_get_str(param_4,10);" (assignment_expression "iVar4 = conf_get_str(param_4,10)" identifier = (call_expression "conf_get_str(param_4,10)" identifier (argument_list "(param_4,10)" ( identifier , number_literal )))) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }" { (expression_statement "uVar16 = (uint)*(char *)(iVar4 + iVar15);" (assignment_expression "uVar16 = (uint)*(char *)(iVar4 + iVar15)" identifier = (binary_expression "(uint)*(char *)(iVar4 + iVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)(iVar4 + iVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15)" ( (binary_expression "iVar4 + iVar15" identifier + identifier) ))))) ;) (if_statement "if (uVar16 == 0) break;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();" (assignment_expression "piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))()" identifier = (cast_expression "(int *)(**(code **)(pcVar19 + 0x98460))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x98460))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x98460))" ( (pointer_expression "**(code **)(pcVar19 + 0x98460)" * (pointer_expression "*(code **)(pcVar19 + 0x98460)" * (cast_expression "(code **)(pcVar19 + 0x98460)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98460)" ( (binary_expression "pcVar19 + 0x98460" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar7 = iVar15;" (assignment_expression "iVar7 = iVar15" identifier = identifier) ;) (while_statement "while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }" while (parenthesized_expression "((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c)))" ( (parenthesized_expression "(pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))" ( (comma_expression "pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c)" (assignment_expression "pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15)" identifier = (binary_expression "(char *)(iVar4 + iVar15) + (iVar7 - iVar15)" (cast_expression "(char *)(iVar4 + iVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15)" ( (binary_expression "iVar4 + iVar15" identifier + identifier) ))) + (parenthesized_expression "(iVar7 - iVar15)" ( (binary_expression "iVar7 - iVar15" identifier - identifier) )))) , (binary_expression "(*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c)" (binary_expression "(*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + (uVar16 & 0xff) * 2)" * (cast_expression "(ushort *)(iVar17 + (uVar16 & 0xff) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uVar16 & 0xff) * 2)" ( (binary_expression "iVar17 + (uVar16 & 0xff) * 2" identifier + (binary_expression "(uVar16 & 0xff) * 2" (parenthesized_expression "(uVar16 & 0xff)" ( (binary_expression "uVar16 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) != number_literal) || (parenthesized_expression "(uVar16 == 0x2c)" ( (binary_expression "uVar16 == 0x2c" identifier == number_literal) )))) )) )) (compound_statement "{\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*(char *)(iVar4 + iVar7);" (assignment_expression "uVar16 = (uint)*(char *)(iVar4 + iVar7)" identifier = (binary_expression "(uint)*(char *)(iVar4 + iVar7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)(iVar4 + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar7)" ( (binary_expression "iVar4 + iVar7" identifier + identifier) ))))) ;) (if_statement "if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }" { (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) })) (if_statement "if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }" { (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) (expression_statement "bVar1 = *(byte *)(iVar4 + iVar7);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar7)" identifier = (pointer_expression "*(byte *)(iVar4 + iVar7)" * (cast_expression "(byte *)(iVar4 + iVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar7)" ( (binary_expression "iVar4 + iVar7" identifier + identifier) ))))) ;) (expression_statement "iVar15 = iVar7;" (assignment_expression "iVar15 = iVar7" identifier = identifier) ;) (while_statement "while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }" while (parenthesized_expression "((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)))))" ( (parenthesized_expression "(bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))" ( (binary_expression "bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)))" (binary_expression "bVar1 != 0" identifier != number_literal) && (parenthesized_expression "((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)))" ( (parenthesized_expression "(((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))" ( (binary_expression "((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)" (parenthesized_expression "((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))" ( (binary_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2)" (binary_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800)" ( (binary_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800" (pointer_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar17 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uint)bVar1 * 2)" ( (binary_expression "iVar17 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((bVar1 - 0x2d & 0xff) < 2)" ( (binary_expression "(bVar1 - 0x2d & 0xff) < 2" (parenthesized_expression "(bVar1 - 0x2d & 0xff)" ( (binary_expression "bVar1 - 0x2d & 0xff" (binary_expression "bVar1 - 0x2d" identifier - number_literal) & number_literal) )) < number_literal) ))) )) || (parenthesized_expression "(bVar1 == 0x2a)" ( (binary_expression "bVar1 == 0x2a" identifier == number_literal) ))) )) ))) )) )) (compound_statement "{\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *(byte *)(iVar4 + iVar15);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar15)" identifier = (pointer_expression "*(byte *)(iVar4 + iVar15)" * (cast_expression "(byte *)(iVar4 + iVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15)" ( (binary_expression "iVar4 + iVar15" identifier + identifier) ))))) ;) })) (if_statement "if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }" if (parenthesized_expression "(uVar16 == 0x2a)" ( (binary_expression "uVar16 == 0x2a" identifier == number_literal) )) (compound_statement "{\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }" { (if_statement "if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" { (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" identifier = (cast_expression "(char *)((iVar15 - iVar7) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar15 - iVar7) + -1)" ( (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )) + number_literal) )))) ;) (expression_statement "pcVar13 = (char *)(iVar4 + iVar7 + 1);" (assignment_expression "pcVar13 = (char *)(iVar4 + iVar7 + 1)" identifier = (cast_expression "(char *)(iVar4 + iVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar7 + 1)" ( (binary_expression "iVar4 + iVar7 + 1" (binary_expression "iVar4 + iVar7" identifier + identifier) + number_literal) )))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" ( (binary_expression "auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7))" identifier + (parenthesized_expression "((iVar2 + 1) - (iVar15 - iVar7))" ( (binary_expression "(iVar2 + 1) - (iVar15 - iVar7)" (parenthesized_expression "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )) - (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) ))) ))) , identifier ))))) ;) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00026c80;" 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)) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) })) (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" identifier = (cast_expression "(char *)((iVar15 - iVar7) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar15 - iVar7) + -1)" ( (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )) + number_literal) )))) ;) (expression_statement "pcVar18 = (char *)(iVar4 + iVar7 + 1);" (assignment_expression "pcVar18 = (char *)(iVar4 + iVar7 + 1)" identifier = (cast_expression "(char *)(iVar4 + iVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar7 + 1)" ( (binary_expression "iVar4 + iVar7 + 1" (binary_expression "iVar4 + iVar7" identifier + identifier) + number_literal) )))) ;) (expression_statement "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);" (assignment_expression "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18)" identifier = (call_expression "(**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18)" ( (binary_expression "pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7))" identifier + (parenthesized_expression "((iVar3 + 1) - (iVar15 - iVar7))" ( (binary_expression "(iVar3 + 1) - (iVar15 - iVar7)" (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )) - (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) ))) ))) , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\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 "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) }) (else_clause "else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }" else (compound_statement "{\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }" { (expression_statement "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) ;) (if_statement "if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" if (parenthesized_expression "(*(char *)(iVar4 + iVar15 + -1) == '*')" ( (binary_expression "*(char *)(iVar4 + iVar15 + -1) == '*'" (pointer_expression "*(char *)(iVar4 + iVar15 + -1)" * (cast_expression "(char *)(iVar4 + iVar15 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15 + -1)" ( (binary_expression "iVar4 + iVar15 + -1" (binary_expression "iVar4 + iVar15" identifier + identifier) + number_literal) )))) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }" { (if_statement "if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }" { (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" identifier = (cast_expression "(char *)((iVar15 - iVar7) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar15 - iVar7) + -1)" ( (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )) + number_literal) )))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(auStack_4fc,pcVar18)" ( identifier , identifier ))))) ;) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00026c80;" 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)) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) })) (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" identifier = (cast_expression "(char *)((iVar15 - iVar7) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar15 - iVar7) + -1)" ( (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )) + number_literal) )))) ;) (expression_statement "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);" (assignment_expression "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" identifier = (call_expression "(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(pcVar12,pcVar18)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\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 "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) }) (else_clause "else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" else (compound_statement "{\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" { (expression_statement "param_3 = (char *)(iVar15 - iVar7);" (assignment_expression "param_3 = (char *)(iVar15 - iVar7)" identifier = (cast_expression "(char *)(iVar15 - iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )))) ;) (if_statement "if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;" if (parenthesized_expression "((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0))" ( (binary_expression "(iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)" ( (comma_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(auStack_4fc,pcVar18)" ( identifier , identifier ))))) , (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) (expression_statement "param_3 = (char *)(iVar15 - iVar7);" (assignment_expression "param_3 = (char *)(iVar15 - iVar7)" identifier = (cast_expression "(char *)(iVar15 - iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(pcVar12,pcVar18)" ( identifier , identifier ))))) ;) (expression_statement "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00026c80;" 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)) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) }))) }))) (expression_statement "bVar1 = *(byte *)(iVar4 + iVar15);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar15)" identifier = (pointer_expression "*(byte *)(iVar4 + iVar15)" * (cast_expression "(byte *)(iVar4 + iVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15)" ( (binary_expression "iVar4 + iVar15" identifier + identifier) ))))) ;) (while_statement "while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }" while (parenthesized_expression "(((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c)))" ( (parenthesized_expression "((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))" ( (binary_expression "(pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c)" (parenthesized_expression "(pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))" ( (comma_expression "pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0)" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) , (binary_expression "bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0)" (binary_expression "bVar1 != 0" identifier != number_literal) && (parenthesized_expression "((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar17 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uint)bVar1 * 2)" ( (binary_expression "iVar17 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )))) )) && (parenthesized_expression "(bVar1 != 0x2c)" ( (binary_expression "bVar1 != 0x2c" identifier != number_literal) ))) )) )) (compound_statement "{\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }" { (expression_statement "bVar1 = *(byte *)(iVar4 + iVar15 + 1);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar15 + 1)" identifier = (pointer_expression "*(byte *)(iVar4 + iVar15 + 1)" * (cast_expression "(byte *)(iVar4 + iVar15 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15 + 1)" ( (binary_expression "iVar4 + iVar15 + 1" (binary_expression "iVar4 + iVar15" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) })) })) (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }" statement_identifier : (if_statement "if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }" if (parenthesized_expression "(iStack_4bc == **(int **)(pcVar19 + 0x98638))" ( (binary_expression "iStack_4bc == **(int **)(pcVar19 + 0x98638)" identifier == (pointer_expression "**(int **)(pcVar19 + 0x98638)" * (pointer_expression "*(int **)(pcVar19 + 0x98638)" * (cast_expression "(int **)(pcVar19 + 0x98638)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98638)" ( (binary_expression "pcVar19 + 0x98638" identifier + number_literal) )))))) )) (compound_statement "{\n    return pcVar5;\n  }" { (return_statement "return pcVar5;" return identifier ;) }))) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x98610);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x98610)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x98610)" * (cast_expression "(code **)(pcVar19 + 0x98610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98610)" ( (binary_expression "pcVar19 + 0x98610" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iStack_4bc;" (assignment_expression "iVar2 = iStack_4bc" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = conf_get_int(iVar14,0xd);" (assignment_expression "iVar8 = conf_get_int(iVar14,0xd)" identifier = (call_expression "conf_get_int(iVar14,0xd)" identifier (argument_list "(iVar14,0xd)" ( identifier , number_literal )))) ;) (if_statement "if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }" if (parenthesized_expression "(((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0))" ( (binary_expression "((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)" (parenthesized_expression "((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1))))))" ( (binary_expression "(iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))" ( (parenthesized_expression "(iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1))))" ( (comma_expression "iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))" (assignment_expression "iVar8 = conf_get_int(iVar14,0xb)" identifier = (call_expression "conf_get_int(iVar14,0xb)" identifier (argument_list "(iVar14,0xb)" ( identifier , number_literal )))) , (binary_expression "iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))" (binary_expression "iVar8 != 0" identifier != number_literal) && (parenthesized_expression "((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))" ( (parenthesized_expression "(iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1))" ( (comma_expression "iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)" (assignment_expression "iVar8 = conf_get_int(iVar14,0xb)" identifier = (call_expression "conf_get_int(iVar14,0xb)" identifier (argument_list "(iVar14,0xb)" ( identifier , number_literal )))) , (binary_expression "iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)" (binary_expression "iVar8 != 2" identifier != number_literal) || (parenthesized_expression "(iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)" ( (comma_expression "iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1" (assignment_expression "iVar8 = conf_get_int(iVar14,0xd)" identifier = (call_expression "conf_get_int(iVar14,0xd)" identifier (argument_list "(iVar14,0xd)" ( identifier , number_literal )))) , (binary_expression "iVar8 == 1" identifier == number_literal)) )))) )) )))) )) ))) )) || (parenthesized_expression "(iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)" ( (comma_expression "iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0" (assignment_expression "iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14)" identifier = (call_expression "proxy_for_destination(0,iVar2,pcVar13,iVar14)" identifier (argument_list "(0,iVar2,pcVar13,iVar14)" ( number_literal , identifier , identifier , identifier )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }" { (if_statement "if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" if (parenthesized_expression "(iStack_51c != 0)" ( (binary_expression "iStack_51c != 0" identifier != number_literal) )) (compound_statement "{\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" { (if_statement "if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" if (parenthesized_expression "(pcVar20 == (code *)0x1)" ( (binary_expression "pcVar20 == (code *)0x1" identifier == (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }" { (expression_statement "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0" identifier = (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4ff0" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" else (if_statement "if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" if (parenthesized_expression "(pcVar20 == (code *)0x2)" ( (binary_expression "pcVar20 == (code *)0x2" identifier == (cast_expression "(code *)0x2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }" { (expression_statement "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8" identifier = (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4fe8" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" else (compound_statement "{\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" { (expression_statement "iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884" identifier = (binary_expression "*(int *)(pcVar19 + 0x97640) + 0x884" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal)) ;) }))))) (expression_statement "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);" (assignment_expression "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518)" identifier = (call_expression "dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518)" identifier (argument_list "(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518)" ( (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4fb0" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier )))) ;) (expression_statement "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);" (call_expression "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97658))" ( (pointer_expression "**(code **)(pcVar19 + 0x97658)" * (pointer_expression "*(code **)(pcVar19 + 0x97658)" * (cast_expression "(code **)(pcVar19 + 0x97658)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97658)" ( (binary_expression "pcVar19 + 0x97658" identifier + number_literal) ))))) )) (argument_list "(iStack_51c,uVar9)" ( identifier , identifier ))) ;) (expression_statement "safefree(uVar9);" (call_expression "safefree(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (expression_statement "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);" (assignment_expression "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97820))" ( (pointer_expression "**(code **)(pcVar19 + 0x97820)" * (pointer_expression "*(code **)(pcVar19 + 0x97820)" * (cast_expression "(code **)(pcVar19 + 0x97820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97820)" ( (binary_expression "pcVar19 + 0x97820" identifier + number_literal) ))))) )) (argument_list "(iVar2,param_3,pcVar20)" ( identifier , identifier , identifier ))))) ;) }) (else_clause "else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }" else (compound_statement "{\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }" { (if_statement "if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" if (parenthesized_expression "(iStack_51c != 0)" ( (binary_expression "iStack_51c != 0" identifier != number_literal) )) (compound_statement "{\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" { (expression_statement "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);" (assignment_expression "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518)" identifier = (call_expression "dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518)" identifier (argument_list "(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518)" ( (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4fe0" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal) , identifier , identifier )))) ;) (expression_statement "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);" (call_expression "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97658))" ( (pointer_expression "**(code **)(pcVar19 + 0x97658)" * (pointer_expression "*(code **)(pcVar19 + 0x97658)" * (cast_expression "(code **)(pcVar19 + 0x97658)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97658)" ( (binary_expression "pcVar19 + 0x97658" identifier + number_literal) ))))) )) (argument_list "(iStack_51c,uVar9)" ( identifier , identifier ))) ;) (expression_statement "safefree(uVar9);" (call_expression "safefree(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (expression_statement "uVar9 = dupstr(iVar2);" (assignment_expression "uVar9 = dupstr(iVar2)" identifier = (call_expression "dupstr(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*(undefined4 *)param_3 = uVar9;" (assignment_expression "*(undefined4 *)param_3 = uVar9" (pointer_expression "*(undefined4 *)param_3" * (cast_expression "(undefined4 *)param_3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);" (assignment_expression "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x97828))(iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x97828))(iVar2)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97828))" ( (pointer_expression "**(code **)(pcVar19 + 0x97828)" * (pointer_expression "*(code **)(pcVar19 + 0x97828)" * (cast_expression "(code **)(pcVar19 + 0x97828)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97828)" ( (binary_expression "pcVar19 + 0x97828" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))))) ;) }))) (return_statement "return pcVar13;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nint proxy_socks4_negotiate(Proxy_Socket p,int change)\n\n{\n  Proxy_Socket p_00;\n  char cVar4;\n  char *pcVar1;\n  char *pcVar2;\n  int iVar3;\n  Proxy_Socket pSVar5;\n  accept_fn_t p_Var6;\n  Conf *in_a3;\n  Conf *conf;\n  bufchain *pbVar7;\n  int iVar8;\n  bufchain *unaff_s2;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int iStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  Proxy_Socket pSStack_258;\n  bufchain *pbStack_254;\n  bufchain *pbStack_250;\n  char addr [4];\n  char hostname [512];\n  \n  p_00 = *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c;\n  if (p->state == -1) {\n    iVar8 = (*(code *)PTR_sk_addrtype_000be568)(p->remote_addr);\n    if (iVar8 != 2) {\n      if (iVar8 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);\n        iVar8 = 0;\nLAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);\n        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);\n                    /* WARNING: Subroutine does not return */\n        safemalloc(iVar3 + 9 + iVar8,1);\n      }\n      if (iVar8 == 3) {\n        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);\n        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);\n        iVar8 = iVar8 + 1;\n        addr[2] = '\0';\n        addr[1] = '\0';\n        addr[0] = '\0';\n        addr[3] = '\x01';\n        goto LAB_00025b04;\n      }\n      pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404);\n      (*(code *)PTR___assert_fail_000bed58)\n                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n      pbVar7 = unaff_s2;\n      goto LAB_00025c88;\n    }\n    p->error = PTR_s_1_0_000be3a8 + -0x5438;\n    pbVar7 = (bufchain *)0x1;\n    p_Var6 = (accept_fn_t)change;\n  }\n  else {\n    pSVar5 = p;\n    pbVar7 = (bufchain *)change;\n    if (change == 0) {\nLAB_00025c88:\n      in_a3 = (Conf *)p->closing_calling_back;\n      p_Var6 = (accept_fn_t)p->closing_error_msg;\n      (*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);\n      unaff_s2 = pbVar7;\n    }\n    else {\n      unaff_s2 = (bufchain *)change;\n      if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }\n    }\n  }\n  if (p_00 == *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c) {\n    return (int)pbVar7;\n  }\n  puVar10 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar10 + 0x990e4);\n  pSStack_258 = p;\n  pbStack_254 = pbVar7;\n  pbStack_250 = unaff_s2;\n  if (p_00->state == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar1 = conf_get_str(p_00->conf,0x10);\n    pcVar2 = conf_get_str(p_00->conf,0x11);\n    if ((*pcVar1 == '\0') && (*pcVar2 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      iStack_46c = 3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      iStack_46c = 3;\n      proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);\n      *(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;\n      uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);\n      iStack_46c = iStack_46c + 1;\n    }\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iStack_46c);\n    p_00->state = 1;\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 == (accept_fn_t)0x0) {\n    in_a3 = (Conf *)p_00->closing_calling_back;\n    (*(*p_00->plug)->closing)\n              (p_00->plug,p_00->closing_error_msg,p_00->closing_error_code,(int)in_a3);\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 == (accept_fn_t)0x1) {\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 == (accept_fn_t)0x3) {\n    iVar8 = (*(*p_00->plug)->accepting)(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx);\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 != (accept_fn_t)0x2) {\nLAB_00025ec0:\n    in_a3 = (Conf *)0x0;\n    (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5014),0x1f41,0);\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }\n  pbVar7 = &p_00->pending_input_data;\n  if (p_00->state == 1) {\n    iVar3 = bufchain_size(pbVar7);\n    iVar8 = 1;\n    if (iVar3 < 2) goto LAB_00025ff8;\n    bufchain_fetch(pbVar7,&uStack_460,2);\n    in_a3 = (Conf *)0x0;\n    if (uStack_460._0_1_ != '\x05') {\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0);\n      goto LAB_00025ff8;\n    }\n    if (uStack_460._1_1_ == '\0') {\n      p_00->state = 2;\n    }\n    else if (uStack_460._1_1_ == '\x01') {\n      p_00->state = 4;\n    }\n    else if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }\n    in_a3 = (Conf *)0x0;\n    bufchain_consume(pbVar7,2);\n    iVar8 = p_00->state;\n  }\n  else {\n    iVar8 = p_00->state;\n  }\n  if (iVar8 == 7) {\n    pbVar7 = &p_00->pending_input_data;\n    iVar8 = bufchain_size(pbVar7);\n    if (1 < iVar8) {\n      bufchain_fetch(pbVar7,&uStack_460,2);\n      if (uStack_460._0_1_ == '\x01') {\n        in_a3 = (Conf *)0x0;\n        if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }\n        bufchain_consume(pbVar7,2);\n        p_00->state = 2;\n        goto LAB_000262a8;\n      }\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0);\n    }\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }\n  if ((iVar8 == 8) && (iVar8 = proxy_socks5_handlechap(p_00), iVar8 != 0)) goto LAB_00025ff8;\n  iVar8 = p_00->state;\n  if (iVar8 == 2) {\nLAB_000262a8:\n    iVar8 = (**(code **)(puVar10 + 0x98720))(p_00->remote_addr);\n    if (iVar8 == 1) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,1);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 10;\n    }\n    else if (iVar8 == 2) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,4);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 0x16;\n    }\n    else {\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }\n    uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n    iVar3 = p_00->remote_port;\n    acStack_462[iVar8] = (char)((uint)iVar3 >> 8);\n    acStack_462[iVar8 + 1] = (char)iVar3;\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar8);\n    p_00->state = 3;\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }\n  if (iVar8 != 3) {\n    if (iVar8 == 4) {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 == 5) {\n      pcVar1 = conf_get_str(p_00->conf,0x10);\n      pcVar2 = conf_get_str(p_00->conf,0x11);\n      if ((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')) {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;\n        iVar8 = 1;\n      }\n      else {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }\n      goto LAB_00025ff8;\n    }\n    if ((iVar8 == 6) && (iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0)) goto LAB_00025ff8;\n    goto LAB_00025ec0;\n  }\nLAB_0002640c:\n  pbVar7 = &p_00->pending_input_data;\n  iVar8 = bufchain_size(pbVar7);\n  if (4 < iVar8) {\n    bufchain_fetch(pbVar7,&cStack_468,5);\n    iVar8 = (int)cStack_467;\n    if (cStack_468 != '\x05') {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 != 0) {\n      iVar3 = *(int *)(puVar10 + 0x98560);\n      uStack_460 = *(undefined4 *)(iVar3 + -0x51d0);\n      uStack_45c = *(undefined4 *)(iVar3 + -0x51cc);\n      uStack_458 = *(undefined4 *)(iVar3 + -0x51c8);\n      uStack_454 = *(undefined2 *)(iVar3 + -0x51c4);\n      if (7 < (iVar8 - 1U & 0xff)) {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);\n        (**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );\n        iVar8 = FUN_00026560(p_00->plug);\n        return iVar8;\n      }\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar8 = (*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))();\n      return iVar8;\n    }\n    if (cStack_465 == '\x03') {\n      iVar8 = bStack_464 + 6;\n    }\n    else if (cStack_465 == '\x04') {\n      iVar8 = 0x16;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }\n    iVar3 = bufchain_size(pbVar7);\n    if (iVar8 <= iVar3) {\n      bufchain_consume(pbVar7,iVar8);\n      proxy_activate(p_00);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n  }\n  iVar8 = 1;\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar10 + 0x990e4)) {\n    return iVar8;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar11)();\n  iVar3 = **(int **)(pcVar11 + 0x98638);\n  if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }\n  conf = in_a3;\n  iVar8 = (**(code **)(pcVar11 + 0x97c88))();\n  if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }\n  if (iVar3 != **(int **)(pcVar11 + 0x98638)) {\n    (**(code **)(pcVar11 + 0x98610))();\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(conf,0xd);\n  }\n  return 0;\n}\n\n" comment (function_definition "int proxy_socks4_negotiate(Proxy_Socket p,int change)\n\n{\n  Proxy_Socket p_00;\n  char cVar4;\n  char *pcVar1;\n  char *pcVar2;\n  int iVar3;\n  Proxy_Socket pSVar5;\n  accept_fn_t p_Var6;\n  Conf *in_a3;\n  Conf *conf;\n  bufchain *pbVar7;\n  int iVar8;\n  bufchain *unaff_s2;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int iStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  Proxy_Socket pSStack_258;\n  bufchain *pbStack_254;\n  bufchain *pbStack_250;\n  char addr [4];\n  char hostname [512];\n  \n  p_00 = *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c;\n  if (p->state == -1) {\n    iVar8 = (*(code *)PTR_sk_addrtype_000be568)(p->remote_addr);\n    if (iVar8 != 2) {\n      if (iVar8 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);\n        iVar8 = 0;\nLAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);\n        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);\n                    /* WARNING: Subroutine does not return */\n        safemalloc(iVar3 + 9 + iVar8,1);\n      }\n      if (iVar8 == 3) {\n        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);\n        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);\n        iVar8 = iVar8 + 1;\n        addr[2] = '\0';\n        addr[1] = '\0';\n        addr[0] = '\0';\n        addr[3] = '\x01';\n        goto LAB_00025b04;\n      }\n      pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404);\n      (*(code *)PTR___assert_fail_000bed58)\n                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n      pbVar7 = unaff_s2;\n      goto LAB_00025c88;\n    }\n    p->error = PTR_s_1_0_000be3a8 + -0x5438;\n    pbVar7 = (bufchain *)0x1;\n    p_Var6 = (accept_fn_t)change;\n  }\n  else {\n    pSVar5 = p;\n    pbVar7 = (bufchain *)change;\n    if (change == 0) {\nLAB_00025c88:\n      in_a3 = (Conf *)p->closing_calling_back;\n      p_Var6 = (accept_fn_t)p->closing_error_msg;\n      (*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);\n      unaff_s2 = pbVar7;\n    }\n    else {\n      unaff_s2 = (bufchain *)change;\n      if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }\n    }\n  }\n  if (p_00 == *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c) {\n    return (int)pbVar7;\n  }\n  puVar10 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar10 + 0x990e4);\n  pSStack_258 = p;\n  pbStack_254 = pbVar7;\n  pbStack_250 = unaff_s2;\n  if (p_00->state == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar1 = conf_get_str(p_00->conf,0x10);\n    pcVar2 = conf_get_str(p_00->conf,0x11);\n    if ((*pcVar1 == '\0') && (*pcVar2 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      iStack_46c = 3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      iStack_46c = 3;\n      proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);\n      *(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;\n      uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);\n      iStack_46c = iStack_46c + 1;\n    }\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iStack_46c);\n    p_00->state = 1;\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 == (accept_fn_t)0x0) {\n    in_a3 = (Conf *)p_00->closing_calling_back;\n    (*(*p_00->plug)->closing)\n              (p_00->plug,p_00->closing_error_msg,p_00->closing_error_code,(int)in_a3);\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 == (accept_fn_t)0x1) {\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 == (accept_fn_t)0x3) {\n    iVar8 = (*(*p_00->plug)->accepting)(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx);\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 != (accept_fn_t)0x2) {\nLAB_00025ec0:\n    in_a3 = (Conf *)0x0;\n    (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5014),0x1f41,0);\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }\n  pbVar7 = &p_00->pending_input_data;\n  if (p_00->state == 1) {\n    iVar3 = bufchain_size(pbVar7);\n    iVar8 = 1;\n    if (iVar3 < 2) goto LAB_00025ff8;\n    bufchain_fetch(pbVar7,&uStack_460,2);\n    in_a3 = (Conf *)0x0;\n    if (uStack_460._0_1_ != '\x05') {\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0);\n      goto LAB_00025ff8;\n    }\n    if (uStack_460._1_1_ == '\0') {\n      p_00->state = 2;\n    }\n    else if (uStack_460._1_1_ == '\x01') {\n      p_00->state = 4;\n    }\n    else if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }\n    in_a3 = (Conf *)0x0;\n    bufchain_consume(pbVar7,2);\n    iVar8 = p_00->state;\n  }\n  else {\n    iVar8 = p_00->state;\n  }\n  if (iVar8 == 7) {\n    pbVar7 = &p_00->pending_input_data;\n    iVar8 = bufchain_size(pbVar7);\n    if (1 < iVar8) {\n      bufchain_fetch(pbVar7,&uStack_460,2);\n      if (uStack_460._0_1_ == '\x01') {\n        in_a3 = (Conf *)0x0;\n        if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }\n        bufchain_consume(pbVar7,2);\n        p_00->state = 2;\n        goto LAB_000262a8;\n      }\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0);\n    }\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }\n  if ((iVar8 == 8) && (iVar8 = proxy_socks5_handlechap(p_00), iVar8 != 0)) goto LAB_00025ff8;\n  iVar8 = p_00->state;\n  if (iVar8 == 2) {\nLAB_000262a8:\n    iVar8 = (**(code **)(puVar10 + 0x98720))(p_00->remote_addr);\n    if (iVar8 == 1) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,1);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 10;\n    }\n    else if (iVar8 == 2) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,4);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 0x16;\n    }\n    else {\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }\n    uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n    iVar3 = p_00->remote_port;\n    acStack_462[iVar8] = (char)((uint)iVar3 >> 8);\n    acStack_462[iVar8 + 1] = (char)iVar3;\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar8);\n    p_00->state = 3;\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }\n  if (iVar8 != 3) {\n    if (iVar8 == 4) {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 == 5) {\n      pcVar1 = conf_get_str(p_00->conf,0x10);\n      pcVar2 = conf_get_str(p_00->conf,0x11);\n      if ((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')) {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;\n        iVar8 = 1;\n      }\n      else {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }\n      goto LAB_00025ff8;\n    }\n    if ((iVar8 == 6) && (iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0)) goto LAB_00025ff8;\n    goto LAB_00025ec0;\n  }\nLAB_0002640c:\n  pbVar7 = &p_00->pending_input_data;\n  iVar8 = bufchain_size(pbVar7);\n  if (4 < iVar8) {\n    bufchain_fetch(pbVar7,&cStack_468,5);\n    iVar8 = (int)cStack_467;\n    if (cStack_468 != '\x05') {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 != 0) {\n      iVar3 = *(int *)(puVar10 + 0x98560);\n      uStack_460 = *(undefined4 *)(iVar3 + -0x51d0);\n      uStack_45c = *(undefined4 *)(iVar3 + -0x51cc);\n      uStack_458 = *(undefined4 *)(iVar3 + -0x51c8);\n      uStack_454 = *(undefined2 *)(iVar3 + -0x51c4);\n      if (7 < (iVar8 - 1U & 0xff)) {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);\n        (**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );\n        iVar8 = FUN_00026560(p_00->plug);\n        return iVar8;\n      }\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar8 = (*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))();\n      return iVar8;\n    }\n    if (cStack_465 == '\x03') {\n      iVar8 = bStack_464 + 6;\n    }\n    else if (cStack_465 == '\x04') {\n      iVar8 = 0x16;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }\n    iVar3 = bufchain_size(pbVar7);\n    if (iVar8 <= iVar3) {\n      bufchain_consume(pbVar7,iVar8);\n      proxy_activate(p_00);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n  }\n  iVar8 = 1;\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar10 + 0x990e4)) {\n    return iVar8;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar11)();\n  iVar3 = **(int **)(pcVar11 + 0x98638);\n  if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }\n  conf = in_a3;\n  iVar8 = (**(code **)(pcVar11 + 0x97c88))();\n  if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }\n  if (iVar3 != **(int **)(pcVar11 + 0x98638)) {\n    (**(code **)(pcVar11 + 0x98610))();\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(conf,0xd);\n  }\n  return 0;\n}" primitive_type (function_declarator "proxy_socks4_negotiate(Proxy_Socket p,int change)" identifier (parameter_list "(Proxy_Socket p,int change)" ( (parameter_declaration "Proxy_Socket p" type_identifier identifier) , (parameter_declaration "int change" primitive_type identifier) ))) (compound_statement "{\n  Proxy_Socket p_00;\n  char cVar4;\n  char *pcVar1;\n  char *pcVar2;\n  int iVar3;\n  Proxy_Socket pSVar5;\n  accept_fn_t p_Var6;\n  Conf *in_a3;\n  Conf *conf;\n  bufchain *pbVar7;\n  int iVar8;\n  bufchain *unaff_s2;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int iStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  Proxy_Socket pSStack_258;\n  bufchain *pbStack_254;\n  bufchain *pbStack_250;\n  char addr [4];\n  char hostname [512];\n  \n  p_00 = *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c;\n  if (p->state == -1) {\n    iVar8 = (*(code *)PTR_sk_addrtype_000be568)(p->remote_addr);\n    if (iVar8 != 2) {\n      if (iVar8 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);\n        iVar8 = 0;\nLAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);\n        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);\n                    /* WARNING: Subroutine does not return */\n        safemalloc(iVar3 + 9 + iVar8,1);\n      }\n      if (iVar8 == 3) {\n        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);\n        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);\n        iVar8 = iVar8 + 1;\n        addr[2] = '\0';\n        addr[1] = '\0';\n        addr[0] = '\0';\n        addr[3] = '\x01';\n        goto LAB_00025b04;\n      }\n      pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404);\n      (*(code *)PTR___assert_fail_000bed58)\n                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n      pbVar7 = unaff_s2;\n      goto LAB_00025c88;\n    }\n    p->error = PTR_s_1_0_000be3a8 + -0x5438;\n    pbVar7 = (bufchain *)0x1;\n    p_Var6 = (accept_fn_t)change;\n  }\n  else {\n    pSVar5 = p;\n    pbVar7 = (bufchain *)change;\n    if (change == 0) {\nLAB_00025c88:\n      in_a3 = (Conf *)p->closing_calling_back;\n      p_Var6 = (accept_fn_t)p->closing_error_msg;\n      (*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);\n      unaff_s2 = pbVar7;\n    }\n    else {\n      unaff_s2 = (bufchain *)change;\n      if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }\n    }\n  }\n  if (p_00 == *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c) {\n    return (int)pbVar7;\n  }\n  puVar10 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar10 + 0x990e4);\n  pSStack_258 = p;\n  pbStack_254 = pbVar7;\n  pbStack_250 = unaff_s2;\n  if (p_00->state == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar1 = conf_get_str(p_00->conf,0x10);\n    pcVar2 = conf_get_str(p_00->conf,0x11);\n    if ((*pcVar1 == '\0') && (*pcVar2 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      iStack_46c = 3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      iStack_46c = 3;\n      proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);\n      *(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;\n      uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);\n      iStack_46c = iStack_46c + 1;\n    }\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iStack_46c);\n    p_00->state = 1;\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 == (accept_fn_t)0x0) {\n    in_a3 = (Conf *)p_00->closing_calling_back;\n    (*(*p_00->plug)->closing)\n              (p_00->plug,p_00->closing_error_msg,p_00->closing_error_code,(int)in_a3);\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 == (accept_fn_t)0x1) {\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 == (accept_fn_t)0x3) {\n    iVar8 = (*(*p_00->plug)->accepting)(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx);\n    goto LAB_00025ff8;\n  }\n  if (p_Var6 != (accept_fn_t)0x2) {\nLAB_00025ec0:\n    in_a3 = (Conf *)0x0;\n    (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5014),0x1f41,0);\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }\n  pbVar7 = &p_00->pending_input_data;\n  if (p_00->state == 1) {\n    iVar3 = bufchain_size(pbVar7);\n    iVar8 = 1;\n    if (iVar3 < 2) goto LAB_00025ff8;\n    bufchain_fetch(pbVar7,&uStack_460,2);\n    in_a3 = (Conf *)0x0;\n    if (uStack_460._0_1_ != '\x05') {\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0);\n      goto LAB_00025ff8;\n    }\n    if (uStack_460._1_1_ == '\0') {\n      p_00->state = 2;\n    }\n    else if (uStack_460._1_1_ == '\x01') {\n      p_00->state = 4;\n    }\n    else if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }\n    in_a3 = (Conf *)0x0;\n    bufchain_consume(pbVar7,2);\n    iVar8 = p_00->state;\n  }\n  else {\n    iVar8 = p_00->state;\n  }\n  if (iVar8 == 7) {\n    pbVar7 = &p_00->pending_input_data;\n    iVar8 = bufchain_size(pbVar7);\n    if (1 < iVar8) {\n      bufchain_fetch(pbVar7,&uStack_460,2);\n      if (uStack_460._0_1_ == '\x01') {\n        in_a3 = (Conf *)0x0;\n        if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }\n        bufchain_consume(pbVar7,2);\n        p_00->state = 2;\n        goto LAB_000262a8;\n      }\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0);\n    }\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }\n  if ((iVar8 == 8) && (iVar8 = proxy_socks5_handlechap(p_00), iVar8 != 0)) goto LAB_00025ff8;\n  iVar8 = p_00->state;\n  if (iVar8 == 2) {\nLAB_000262a8:\n    iVar8 = (**(code **)(puVar10 + 0x98720))(p_00->remote_addr);\n    if (iVar8 == 1) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,1);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 10;\n    }\n    else if (iVar8 == 2) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,4);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 0x16;\n    }\n    else {\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }\n    uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n    iVar3 = p_00->remote_port;\n    acStack_462[iVar8] = (char)((uint)iVar3 >> 8);\n    acStack_462[iVar8 + 1] = (char)iVar3;\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar8);\n    p_00->state = 3;\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }\n  if (iVar8 != 3) {\n    if (iVar8 == 4) {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 == 5) {\n      pcVar1 = conf_get_str(p_00->conf,0x10);\n      pcVar2 = conf_get_str(p_00->conf,0x11);\n      if ((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')) {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;\n        iVar8 = 1;\n      }\n      else {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }\n      goto LAB_00025ff8;\n    }\n    if ((iVar8 == 6) && (iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0)) goto LAB_00025ff8;\n    goto LAB_00025ec0;\n  }\nLAB_0002640c:\n  pbVar7 = &p_00->pending_input_data;\n  iVar8 = bufchain_size(pbVar7);\n  if (4 < iVar8) {\n    bufchain_fetch(pbVar7,&cStack_468,5);\n    iVar8 = (int)cStack_467;\n    if (cStack_468 != '\x05') {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 != 0) {\n      iVar3 = *(int *)(puVar10 + 0x98560);\n      uStack_460 = *(undefined4 *)(iVar3 + -0x51d0);\n      uStack_45c = *(undefined4 *)(iVar3 + -0x51cc);\n      uStack_458 = *(undefined4 *)(iVar3 + -0x51c8);\n      uStack_454 = *(undefined2 *)(iVar3 + -0x51c4);\n      if (7 < (iVar8 - 1U & 0xff)) {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);\n        (**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );\n        iVar8 = FUN_00026560(p_00->plug);\n        return iVar8;\n      }\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar8 = (*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))();\n      return iVar8;\n    }\n    if (cStack_465 == '\x03') {\n      iVar8 = bStack_464 + 6;\n    }\n    else if (cStack_465 == '\x04') {\n      iVar8 = 0x16;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }\n    iVar3 = bufchain_size(pbVar7);\n    if (iVar8 <= iVar3) {\n      bufchain_consume(pbVar7,iVar8);\n      proxy_activate(p_00);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n  }\n  iVar8 = 1;\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar10 + 0x990e4)) {\n    return iVar8;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar11)();\n  iVar3 = **(int **)(pcVar11 + 0x98638);\n  if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }\n  conf = in_a3;\n  iVar8 = (**(code **)(pcVar11 + 0x97c88))();\n  if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }\n  if (iVar3 != **(int **)(pcVar11 + 0x98638)) {\n    (**(code **)(pcVar11 + 0x98610))();\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(conf,0xd);\n  }\n  return 0;\n}" { (declaration "Proxy_Socket p_00;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "Proxy_Socket pSVar5;" type_identifier identifier ;) (declaration "accept_fn_t p_Var6;" type_identifier identifier ;) (declaration "Conf *in_a3;" type_identifier (pointer_declarator "*in_a3" * identifier) ;) (declaration "Conf *conf;" type_identifier (pointer_declarator "*conf" * identifier) ;) (declaration "bufchain *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "bufchain *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iStack_46c;" primitive_type identifier ;) (declaration "char cStack_468;" primitive_type identifier ;) (declaration "char cStack_467;" primitive_type identifier ;) (declaration "char cStack_465;" primitive_type identifier ;) (declaration "byte bStack_464;" type_identifier identifier ;) (declaration "char acStack_462 [2];" primitive_type (array_declarator "acStack_462 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_460;" type_identifier identifier ;) (declaration "undefined4 uStack_45c;" type_identifier identifier ;) (declaration "undefined4 uStack_458;" type_identifier identifier ;) (declaration "undefined2 uStack_454;" type_identifier identifier ;) (declaration "int iStack_25c;" primitive_type identifier ;) (declaration "Proxy_Socket pSStack_258;" type_identifier identifier ;) (declaration "bufchain *pbStack_254;" type_identifier (pointer_declarator "*pbStack_254" * identifier) ;) (declaration "bufchain *pbStack_250;" type_identifier (pointer_declarator "*pbStack_250" * identifier) ;) (declaration "char addr [4];" primitive_type (array_declarator "addr [4]" identifier [ number_literal ]) ;) (declaration "char hostname [512];" primitive_type (array_declarator "hostname [512]" identifier [ number_literal ]) ;) (expression_statement "p_00 = *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c;" (assignment_expression "p_00 = *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c" identifier = (pointer_expression "*(Proxy_Socket *)PTR___stack_chk_guard_000bef2c" * (cast_expression "(Proxy_Socket *)PTR___stack_chk_guard_000bef2c" ( (type_descriptor "Proxy_Socket *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (p->state == -1) {\n    iVar8 = (*(code *)PTR_sk_addrtype_000be568)(p->remote_addr);\n    if (iVar8 != 2) {\n      if (iVar8 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);\n        iVar8 = 0;\nLAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);\n        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);\n                    /* WARNING: Subroutine does not return */\n        safemalloc(iVar3 + 9 + iVar8,1);\n      }\n      if (iVar8 == 3) {\n        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);\n        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);\n        iVar8 = iVar8 + 1;\n        addr[2] = '\0';\n        addr[1] = '\0';\n        addr[0] = '\0';\n        addr[3] = '\x01';\n        goto LAB_00025b04;\n      }\n      pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404);\n      (*(code *)PTR___assert_fail_000bed58)\n                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n      pbVar7 = unaff_s2;\n      goto LAB_00025c88;\n    }\n    p->error = PTR_s_1_0_000be3a8 + -0x5438;\n    pbVar7 = (bufchain *)0x1;\n    p_Var6 = (accept_fn_t)change;\n  }\n  else {\n    pSVar5 = p;\n    pbVar7 = (bufchain *)change;\n    if (change == 0) {\nLAB_00025c88:\n      in_a3 = (Conf *)p->closing_calling_back;\n      p_Var6 = (accept_fn_t)p->closing_error_msg;\n      (*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);\n      unaff_s2 = pbVar7;\n    }\n    else {\n      unaff_s2 = (bufchain *)change;\n      if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }\n    }\n  }" if (parenthesized_expression "(p->state == -1)" ( (binary_expression "p->state == -1" (field_expression "p->state" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    iVar8 = (*(code *)PTR_sk_addrtype_000be568)(p->remote_addr);\n    if (iVar8 != 2) {\n      if (iVar8 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);\n        iVar8 = 0;\nLAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);\n        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);\n                    /* WARNING: Subroutine does not return */\n        safemalloc(iVar3 + 9 + iVar8,1);\n      }\n      if (iVar8 == 3) {\n        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);\n        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);\n        iVar8 = iVar8 + 1;\n        addr[2] = '\0';\n        addr[1] = '\0';\n        addr[0] = '\0';\n        addr[3] = '\x01';\n        goto LAB_00025b04;\n      }\n      pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404);\n      (*(code *)PTR___assert_fail_000bed58)\n                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n      pbVar7 = unaff_s2;\n      goto LAB_00025c88;\n    }\n    p->error = PTR_s_1_0_000be3a8 + -0x5438;\n    pbVar7 = (bufchain *)0x1;\n    p_Var6 = (accept_fn_t)change;\n  }" { (expression_statement "iVar8 = (*(code *)PTR_sk_addrtype_000be568)(p->remote_addr);" (assignment_expression "iVar8 = (*(code *)PTR_sk_addrtype_000be568)(p->remote_addr)" identifier = (call_expression "(*(code *)PTR_sk_addrtype_000be568)(p->remote_addr)" (parenthesized_expression "(*(code *)PTR_sk_addrtype_000be568)" ( (pointer_expression "*(code *)PTR_sk_addrtype_000be568" * (cast_expression "(code *)PTR_sk_addrtype_000be568" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p->remote_addr)" ( (field_expression "p->remote_addr" identifier -> field_identifier) )))) ;) (if_statement "if (iVar8 != 2) {\n      if (iVar8 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);\n        iVar8 = 0;\nLAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);\n        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);\n                    /* WARNING: Subroutine does not return */\n        safemalloc(iVar3 + 9 + iVar8,1);\n      }\n      if (iVar8 == 3) {\n        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);\n        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);\n        iVar8 = iVar8 + 1;\n        addr[2] = '\0';\n        addr[1] = '\0';\n        addr[0] = '\0';\n        addr[3] = '\x01';\n        goto LAB_00025b04;\n      }\n      pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404);\n      (*(code *)PTR___assert_fail_000bed58)\n                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n      pbVar7 = unaff_s2;\n      goto LAB_00025c88;\n    }" if (parenthesized_expression "(iVar8 != 2)" ( (binary_expression "iVar8 != 2" identifier != number_literal) )) (compound_statement "{\n      if (iVar8 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);\n        iVar8 = 0;\nLAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);\n        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);\n                    /* WARNING: Subroutine does not return */\n        safemalloc(iVar3 + 9 + iVar8,1);\n      }\n      if (iVar8 == 3) {\n        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);\n        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);\n        iVar8 = iVar8 + 1;\n        addr[2] = '\0';\n        addr[1] = '\0';\n        addr[0] = '\0';\n        addr[3] = '\x01';\n        goto LAB_00025b04;\n      }\n      pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404);\n      (*(code *)PTR___assert_fail_000bed58)\n                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n      pbVar7 = unaff_s2;\n      goto LAB_00025c88;\n    }" { (if_statement "if (iVar8 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);\n        iVar8 = 0;\nLAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);\n        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);\n                    /* WARNING: Subroutine does not return */\n        safemalloc(iVar3 + 9 + iVar8,1);\n      }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);\n        iVar8 = 0;\nLAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);\n        iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);\n                    /* WARNING: Subroutine does not return */\n        safemalloc(iVar3 + 9 + iVar8,1);\n      }" { (expression_statement "(*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr);" (call_expression "(*(code *)PTR_sk_addrcopy_000be56c)(p->remote_addr,addr)" (parenthesized_expression "(*(code *)PTR_sk_addrcopy_000be56c)" ( (pointer_expression "*(code *)PTR_sk_addrcopy_000be56c" * (cast_expression "(code *)PTR_sk_addrcopy_000be56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p->remote_addr,addr)" ( (field_expression "p->remote_addr" identifier -> field_identifier) , identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00025b04:\n        pcVar1 = conf_get_str(p->conf,0x10);" statement_identifier : (expression_statement "pcVar1 = conf_get_str(p->conf,0x10);" (assignment_expression "pcVar1 = conf_get_str(p->conf,0x10)" identifier = (call_expression "conf_get_str(p->conf,0x10)" identifier (argument_list "(p->conf,0x10)" ( (field_expression "p->conf" identifier -> field_identifier) , number_literal )))) ;)) (expression_statement "iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_000bee74)(pcVar1)" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)(pcVar1)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar1)" ( identifier )))) ;) comment (expression_statement "safemalloc(iVar3 + 9 + iVar8,1);" (call_expression "safemalloc(iVar3 + 9 + iVar8,1)" identifier (argument_list "(iVar3 + 9 + iVar8,1)" ( (binary_expression "iVar3 + 9 + iVar8" (binary_expression "iVar3 + 9" identifier + number_literal) + identifier) , number_literal ))) ;) })) (if_statement "if (iVar8 == 3) {\n        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);\n        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);\n        iVar8 = iVar8 + 1;\n        addr[2] = '\0';\n        addr[1] = '\0';\n        addr[0] = '\0';\n        addr[3] = '\x01';\n        goto LAB_00025b04;\n      }" if (parenthesized_expression "(iVar8 == 3)" ( (binary_expression "iVar8 == 3" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);\n        iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);\n        iVar8 = iVar8 + 1;\n        addr[2] = '\0';\n        addr[1] = '\0';\n        addr[0] = '\0';\n        addr[3] = '\x01';\n        goto LAB_00025b04;\n      }" { (expression_statement "(*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200);" (call_expression "(*(code *)PTR_sk_getaddr_000be3b0)(p->remote_addr,hostname,0x200)" (parenthesized_expression "(*(code *)PTR_sk_getaddr_000be3b0)" ( (pointer_expression "*(code *)PTR_sk_getaddr_000be3b0" * (cast_expression "(code *)PTR_sk_getaddr_000be3b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p->remote_addr,hostname,0x200)" ( (field_expression "p->remote_addr" identifier -> field_identifier) , identifier , number_literal ))) ;) (expression_statement "iVar8 = (*(code *)PTR_strlen_000bee74)(hostname);" (assignment_expression "iVar8 = (*(code *)PTR_strlen_000bee74)(hostname)" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)(hostname)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(hostname)" ( identifier )))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "addr[2] = '\0';" (assignment_expression "addr[2] = '\0'" (subscript_expression "addr[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addr[1] = '\0';" (assignment_expression "addr[1] = '\0'" (subscript_expression "addr[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addr[0] = '\0';" (assignment_expression "addr[0] = '\0'" (subscript_expression "addr[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addr[3] = '\x01';" (assignment_expression "addr[3] = '\x01'" (subscript_expression "addr[3]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00025b04;" goto statement_identifier ;) })) (expression_statement "pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404);" (assignment_expression "pSVar5 = (Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404)" identifier = (call_expression "(Proxy_Socket)(PTR_s_1_0_000be3a8 + -0x5404)" (parenthesized_expression "(Proxy_Socket)" ( identifier )) (argument_list "(PTR_s_1_0_000be3a8 + -0x5404)" ( (binary_expression "PTR_s_1_0_000be3a8 + -0x5404" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR___assert_fail_000bed58)\n                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);" (call_expression "(*(code *)PTR___assert_fail_000bed58)\n                (pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28)" (parenthesized_expression "(*(code *)PTR___assert_fail_000bed58)" ( (pointer_expression "*(code *)PTR___assert_fail_000bed58" * (cast_expression "(code *)PTR___assert_fail_000bed58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pSVar5,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28)" ( identifier , (binary_expression "PTR_s_1_0_000be3a8 + -0x54b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_1_0_000be3a8 + -0x4e28" identifier + number_literal) ))) ;) (expression_statement "pbVar7 = unaff_s2;" (assignment_expression "pbVar7 = unaff_s2" identifier = identifier) ;) (goto_statement "goto LAB_00025c88;" goto statement_identifier ;) })) (expression_statement "p->error = PTR_s_1_0_000be3a8 + -0x5438;" (assignment_expression "p->error = PTR_s_1_0_000be3a8 + -0x5438" (field_expression "p->error" identifier -> field_identifier) = (binary_expression "PTR_s_1_0_000be3a8 + -0x5438" identifier + number_literal)) ;) (expression_statement "pbVar7 = (bufchain *)0x1;" (assignment_expression "pbVar7 = (bufchain *)0x1" identifier = (cast_expression "(bufchain *)0x1" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var6 = (accept_fn_t)change;" (assignment_expression "p_Var6 = (accept_fn_t)change" identifier = (cast_expression "(accept_fn_t)change" ( (type_descriptor "accept_fn_t" type_identifier) ) identifier)) ;) }) (else_clause "else {\n    pSVar5 = p;\n    pbVar7 = (bufchain *)change;\n    if (change == 0) {\nLAB_00025c88:\n      in_a3 = (Conf *)p->closing_calling_back;\n      p_Var6 = (accept_fn_t)p->closing_error_msg;\n      (*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);\n      unaff_s2 = pbVar7;\n    }\n    else {\n      unaff_s2 = (bufchain *)change;\n      if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }\n    }\n  }" else (compound_statement "{\n    pSVar5 = p;\n    pbVar7 = (bufchain *)change;\n    if (change == 0) {\nLAB_00025c88:\n      in_a3 = (Conf *)p->closing_calling_back;\n      p_Var6 = (accept_fn_t)p->closing_error_msg;\n      (*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);\n      unaff_s2 = pbVar7;\n    }\n    else {\n      unaff_s2 = (bufchain *)change;\n      if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }\n    }\n  }" { (expression_statement "pSVar5 = p;" (assignment_expression "pSVar5 = p" identifier = identifier) ;) (expression_statement "pbVar7 = (bufchain *)change;" (assignment_expression "pbVar7 = (bufchain *)change" identifier = (cast_expression "(bufchain *)change" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (change == 0) {\nLAB_00025c88:\n      in_a3 = (Conf *)p->closing_calling_back;\n      p_Var6 = (accept_fn_t)p->closing_error_msg;\n      (*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);\n      unaff_s2 = pbVar7;\n    }\n    else {\n      unaff_s2 = (bufchain *)change;\n      if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }\n    }" if (parenthesized_expression "(change == 0)" ( (binary_expression "change == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00025c88:\n      in_a3 = (Conf *)p->closing_calling_back;\n      p_Var6 = (accept_fn_t)p->closing_error_msg;\n      (*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);\n      unaff_s2 = pbVar7;\n    }" { (labeled_statement "LAB_00025c88:\n      in_a3 = (Conf *)p->closing_calling_back;" statement_identifier : (expression_statement "in_a3 = (Conf *)p->closing_calling_back;" (assignment_expression "in_a3 = (Conf *)p->closing_calling_back" identifier = (cast_expression "(Conf *)p->closing_calling_back" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p->closing_calling_back" identifier -> field_identifier))) ;)) (expression_statement "p_Var6 = (accept_fn_t)p->closing_error_msg;" (assignment_expression "p_Var6 = (accept_fn_t)p->closing_error_msg" identifier = (cast_expression "(accept_fn_t)p->closing_error_msg" ( (type_descriptor "accept_fn_t" type_identifier) ) (field_expression "p->closing_error_msg" identifier -> field_identifier))) ;) (expression_statement "(*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3);" (call_expression "(*(*pSVar5->plug)->closing)(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3)" (parenthesized_expression "(*(*pSVar5->plug)->closing)" ( (pointer_expression "*(*pSVar5->plug)->closing" * (field_expression "(*pSVar5->plug)->closing" (parenthesized_expression "(*pSVar5->plug)" ( (pointer_expression "*pSVar5->plug" * (field_expression "pSVar5->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(pSVar5->plug,(char *)p_Var6,p->closing_error_code,(int)in_a3)" ( (field_expression "pSVar5->plug" identifier -> field_identifier) , (cast_expression "(char *)p_Var6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "p->closing_error_code" identifier -> field_identifier) , (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "unaff_s2 = pbVar7;" (assignment_expression "unaff_s2 = pbVar7" identifier = identifier) ;) }) (else_clause "else {\n      unaff_s2 = (bufchain *)change;\n      if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }\n    }" else (compound_statement "{\n      unaff_s2 = (bufchain *)change;\n      if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }\n    }" { (expression_statement "unaff_s2 = (bufchain *)change;" (assignment_expression "unaff_s2 = (bufchain *)change" identifier = (cast_expression "(bufchain *)change" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (change == 1) {\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }\n      else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }" if (parenthesized_expression "(change == 1)" ( (binary_expression "change == 1" identifier == number_literal) )) (compound_statement "{\n        pbVar7 = (bufchain *)0x0;\n        p_Var6 = (accept_fn_t)change;\n      }" { (expression_statement "pbVar7 = (bufchain *)0x0;" (assignment_expression "pbVar7 = (bufchain *)0x0" identifier = (cast_expression "(bufchain *)0x0" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var6 = (accept_fn_t)change;" (assignment_expression "p_Var6 = (accept_fn_t)change" identifier = (cast_expression "(accept_fn_t)change" ( (type_descriptor "accept_fn_t" type_identifier) ) identifier)) ;) }) (else_clause "else if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }" else (if_statement "if (change == 3) {\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }\n      else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }" if (parenthesized_expression "(change == 3)" ( (binary_expression "change == 3" identifier == number_literal) )) (compound_statement "{\n        p_Var6 = p->accepting_constructor;\n        pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);\n      }" { (expression_statement "p_Var6 = p->accepting_constructor;" (assignment_expression "p_Var6 = p->accepting_constructor" identifier = (field_expression "p->accepting_constructor" identifier -> field_identifier)) ;) (expression_statement "pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx);" (assignment_expression "pbVar7 = (bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx)" identifier = (cast_expression "(bufchain *)(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx)" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(*p->plug)->accepting)(p->plug,p_Var6,p->accepting_ctx)" (parenthesized_expression "(*(*p->plug)->accepting)" ( (pointer_expression "*(*p->plug)->accepting" * (field_expression "(*p->plug)->accepting" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,p_Var6,p->accepting_ctx)" ( (field_expression "p->plug" identifier -> field_identifier) , identifier , (field_expression "p->accepting_ctx" identifier -> field_identifier) ))))) ;) }) (else_clause "else if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }" else (if_statement "if ((change == 2) && (p->state == 1)) {\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }\n      else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }" if (parenthesized_expression "((change == 2) && (p->state == 1))" ( (binary_expression "(change == 2) && (p->state == 1)" (parenthesized_expression "(change == 2)" ( (binary_expression "change == 2" identifier == number_literal) )) && (parenthesized_expression "(p->state == 1)" ( (binary_expression "p->state == 1" (field_expression "p->state" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n        unaff_s2 = &p->pending_input_data;\n        iVar8 = bufchain_size(unaff_s2);\n        pbVar7 = (bufchain *)0x1;\n        p_Var6 = (accept_fn_t)change;\n        if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }\n      }" { (expression_statement "unaff_s2 = &p->pending_input_data;" (assignment_expression "unaff_s2 = &p->pending_input_data" identifier = (pointer_expression "&p->pending_input_data" & (field_expression "p->pending_input_data" identifier -> field_identifier))) ;) (expression_statement "iVar8 = bufchain_size(unaff_s2);" (assignment_expression "iVar8 = bufchain_size(unaff_s2)" identifier = (call_expression "bufchain_size(unaff_s2)" identifier (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "pbVar7 = (bufchain *)0x1;" (assignment_expression "pbVar7 = (bufchain *)0x1" identifier = (cast_expression "(bufchain *)0x1" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var6 = (accept_fn_t)change;" (assignment_expression "p_Var6 = (accept_fn_t)change" identifier = (cast_expression "(accept_fn_t)change" ( (type_descriptor "accept_fn_t" type_identifier) ) identifier)) ;) (if_statement "if (7 < iVar8) {\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }" if (parenthesized_expression "(7 < iVar8)" ( (binary_expression "7 < iVar8" number_literal < identifier) )) (compound_statement "{\n          bufchain_fetch(unaff_s2,hostname,8);\n          if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }\n        }" { (expression_statement "bufchain_fetch(unaff_s2,hostname,8);" (call_expression "bufchain_fetch(unaff_s2,hostname,8)" identifier (argument_list "(unaff_s2,hostname,8)" ( identifier , identifier , number_literal ))) ;) (if_statement "if (hostname[0] == '\0') {\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }\n          else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }" if (parenthesized_expression "(hostname[0] == '\0')" ( (binary_expression "hostname[0] == '\0'" (subscript_expression "hostname[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }\n          }" { (if_statement "if (hostname[1] == 'Z') {\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }\n            else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }" if (parenthesized_expression "(hostname[1] == 'Z')" ( (binary_expression "hostname[1] == 'Z'" (subscript_expression "hostname[1]" identifier [ number_literal ]) == (char_literal "'Z'" ' character ')) )) (compound_statement "{\n              p_Var6 = (accept_fn_t)0x8;\n              bufchain_consume(unaff_s2,8);\n              proxy_activate(p);\n            }" { (expression_statement "p_Var6 = (accept_fn_t)0x8;" (assignment_expression "p_Var6 = (accept_fn_t)0x8" identifier = (cast_expression "(accept_fn_t)0x8" ( (type_descriptor "accept_fn_t" type_identifier) ) number_literal)) ;) (expression_statement "bufchain_consume(unaff_s2,8);" (call_expression "bufchain_consume(unaff_s2,8)" identifier (argument_list "(unaff_s2,8)" ( identifier , number_literal ))) ;) (expression_statement "proxy_activate(p);" (call_expression "proxy_activate(p)" identifier (argument_list "(p)" ( identifier ))) ;) }) (else_clause "else if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }" else (if_statement "if (hostname[1] == '\\') {\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }\n            else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }" if (parenthesized_expression "(hostname[1] == '\\')" ( (binary_expression "hostname[1] == '\\'" (subscript_expression "hostname[1]" identifier [ number_literal ]) == (char_literal "'\\'" ' escape_sequence ')) )) (compound_statement "{\n              in_a3 = (Conf *)0x0;\n              p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);\n              (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n            }" { (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4);" (assignment_expression "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4)" identifier = (call_expression "(accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53a4)" (parenthesized_expression "(accept_fn_t)" ( identifier )) (argument_list "(PTR_s_1_0_000be3a8 + -0x53a4)" ( (binary_expression "PTR_s_1_0_000be3a8 + -0x53a4" identifier + number_literal) )))) ;) (expression_statement "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);" (call_expression "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,(char *)p_Var6,8000,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (cast_expression "(char *)p_Var6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal ))) ;) }) (else_clause "else {\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }" else (compound_statement "{\n              in_a3 = (Conf *)0x0;\n              if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n            }" { (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (hostname[1] == ']') {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }\n              else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }" if (parenthesized_expression "(hostname[1] == ']')" ( (binary_expression "hostname[1] == ']'" (subscript_expression "hostname[1]" identifier [ number_literal ]) == (char_literal "']'" ' character ')) )) (compound_statement "{\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }" { (expression_statement "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370);" (assignment_expression "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370)" identifier = (call_expression "(accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5370)" (parenthesized_expression "(accept_fn_t)" ( identifier )) (argument_list "(PTR_s_1_0_000be3a8 + -0x5370)" ( (binary_expression "PTR_s_1_0_000be3a8 + -0x5370" identifier + number_literal) )))) ;) (expression_statement "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);" (call_expression "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,(char *)p_Var6,8000,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (cast_expression "(char *)p_Var6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal ))) ;) }) (else_clause "else {\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }" else (compound_statement "{\n                p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);\n                (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n              }" { (expression_statement "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338);" (assignment_expression "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338)" identifier = (call_expression "(accept_fn_t)(PTR_s_1_0_000be3a8 + -0x5338)" (parenthesized_expression "(accept_fn_t)" ( identifier )) (argument_list "(PTR_s_1_0_000be3a8 + -0x5338)" ( (binary_expression "PTR_s_1_0_000be3a8 + -0x5338" identifier + number_literal) )))) ;) (expression_statement "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);" (call_expression "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,(char *)p_Var6,8000,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (cast_expression "(char *)p_Var6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal ))) ;) }))) }))))) }) (else_clause "else {\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }" else (compound_statement "{\n            in_a3 = (Conf *)0x0;\n            p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);\n            (*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);\n          }" { (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec);" (assignment_expression "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec)" identifier = (call_expression "(accept_fn_t)(PTR_s_1_0_000be3a8 + -0x53ec)" (parenthesized_expression "(accept_fn_t)" ( identifier )) (argument_list "(PTR_s_1_0_000be3a8 + -0x53ec)" ( (binary_expression "PTR_s_1_0_000be3a8 + -0x53ec" identifier + number_literal) )))) ;) (expression_statement "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0);" (call_expression "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,8000,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,(char *)p_Var6,8000,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (cast_expression "(char *)p_Var6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal ))) ;) }))) })) }) (else_clause "else {\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }" else (compound_statement "{\n        in_a3 = (Conf *)0x0;\n        p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);\n        (*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);\n        pbVar7 = (bufchain *)0x1;\n      }" { (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c);" (assignment_expression "p_Var6 = (accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c)" identifier = (call_expression "(accept_fn_t)(PTR_s_1_0_000be3a8 + -0x545c)" (parenthesized_expression "(accept_fn_t)" ( identifier )) (argument_list "(PTR_s_1_0_000be3a8 + -0x545c)" ( (binary_expression "PTR_s_1_0_000be3a8 + -0x545c" identifier + number_literal) )))) ;) (expression_statement "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0);" (call_expression "(*(*p->plug)->closing)(p->plug,(char *)p_Var6,0x1f41,0)" (parenthesized_expression "(*(*p->plug)->closing)" ( (pointer_expression "*(*p->plug)->closing" * (field_expression "(*p->plug)->closing" (parenthesized_expression "(*p->plug)" ( (pointer_expression "*p->plug" * (field_expression "p->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p->plug,(char *)p_Var6,0x1f41,0)" ( (field_expression "p->plug" identifier -> field_identifier) , (cast_expression "(char *)p_Var6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal ))) ;) (expression_statement "pbVar7 = (bufchain *)0x1;" (assignment_expression "pbVar7 = (bufchain *)0x1" identifier = (cast_expression "(bufchain *)0x1" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))))) }))) }))) (if_statement "if (p_00 == *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c) {\n    return (int)pbVar7;\n  }" if (parenthesized_expression "(p_00 == *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c)" ( (binary_expression "p_00 == *(Proxy_Socket *)PTR___stack_chk_guard_000bef2c" identifier == (pointer_expression "*(Proxy_Socket *)PTR___stack_chk_guard_000bef2c" * (cast_expression "(Proxy_Socket *)PTR___stack_chk_guard_000bef2c" ( (type_descriptor "Proxy_Socket *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (int)pbVar7;\n  }" { (return_statement "return (int)pbVar7;" return (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "puVar10 = PTR___stack_chk_fail_000bef04;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000bef04" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000bef04)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bef04)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bef04)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000bef04" * (cast_expression "(code *)PTR___stack_chk_fail_000bef04" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_25c = **(int **)(puVar10 + 0x990e4);" (assignment_expression "iStack_25c = **(int **)(puVar10 + 0x990e4)" identifier = (pointer_expression "**(int **)(puVar10 + 0x990e4)" * (pointer_expression "*(int **)(puVar10 + 0x990e4)" * (cast_expression "(int **)(puVar10 + 0x990e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x990e4)" ( (binary_expression "puVar10 + 0x990e4" identifier + number_literal) )))))) ;) (expression_statement "pSStack_258 = p;" (assignment_expression "pSStack_258 = p" identifier = identifier) ;) (expression_statement "pbStack_254 = pbVar7;" (assignment_expression "pbStack_254 = pbVar7" identifier = identifier) ;) (expression_statement "pbStack_250 = unaff_s2;" (assignment_expression "pbStack_250 = unaff_s2" identifier = identifier) ;) (if_statement "if (p_00->state == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar1 = conf_get_str(p_00->conf,0x10);\n    pcVar2 = conf_get_str(p_00->conf,0x11);\n    if ((*pcVar1 == '\0') && (*pcVar2 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      iStack_46c = 3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      iStack_46c = 3;\n      proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);\n      *(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;\n      uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);\n      iStack_46c = iStack_46c + 1;\n    }\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iStack_46c);\n    p_00->state = 1;\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }" if (parenthesized_expression "(p_00->state == -1)" ( (binary_expression "p_00->state == -1" (field_expression "p_00->state" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar1 = conf_get_str(p_00->conf,0x10);\n    pcVar2 = conf_get_str(p_00->conf,0x11);\n    if ((*pcVar1 == '\0') && (*pcVar2 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      iStack_46c = 3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      iStack_46c = 3;\n      proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);\n      *(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;\n      uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);\n      iStack_46c = iStack_46c + 1;\n    }\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iStack_46c);\n    p_00->state = 1;\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }" { (expression_statement "uStack_460 = CONCAT13(5,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(5,uStack_460._1_3_)" identifier = (call_expression "CONCAT13(5,uStack_460._1_3_)" identifier (argument_list "(5,uStack_460._1_3_)" ( number_literal , (field_expression "uStack_460._1_3_" identifier . field_identifier) )))) ;) (expression_statement "pcVar1 = conf_get_str(p_00->conf,0x10);" (assignment_expression "pcVar1 = conf_get_str(p_00->conf,0x10)" identifier = (call_expression "conf_get_str(p_00->conf,0x10)" identifier (argument_list "(p_00->conf,0x10)" ( (field_expression "p_00->conf" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "pcVar2 = conf_get_str(p_00->conf,0x11);" (assignment_expression "pcVar2 = conf_get_str(p_00->conf,0x11)" identifier = (call_expression "conf_get_str(p_00->conf,0x11)" identifier (argument_list "(p_00->conf,0x11)" ( (field_expression "p_00->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if ((*pcVar1 == '\0') && (*pcVar2 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      iStack_46c = 3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      iStack_46c = 3;\n      proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);\n      *(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;\n      uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);\n      iStack_46c = iStack_46c + 1;\n    }" if (parenthesized_expression "((*pcVar1 == '\0') && (*pcVar2 == '\0'))" ( (binary_expression "(*pcVar1 == '\0') && (*pcVar2 == '\0')" (parenthesized_expression "(*pcVar1 == '\0')" ( (binary_expression "*pcVar1 == '\0'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*pcVar2 == '\0')" ( (binary_expression "*pcVar2 == '\0'" (pointer_expression "*pcVar2" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      iStack_46c = 3;\n    }" { (expression_statement "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(1,uStack_460._2_2_)" identifier (argument_list "(1,uStack_460._2_2_)" ( number_literal , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;" (assignment_expression "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" identifier = (binary_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (call_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_)" identifier (argument_list "(uStack_460._0_2_,uStack_460._2_2_)" ( (field_expression "uStack_460._0_2_" identifier . field_identifier) , (field_expression "uStack_460._2_2_" identifier . field_identifier) ))) & number_literal)) ;) (expression_statement "iStack_46c = 3;" (assignment_expression "iStack_46c = 3" identifier = number_literal) ;) }) (else_clause "else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      iStack_46c = 3;\n      proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);\n      *(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;\n      uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);\n      iStack_46c = iStack_46c + 1;\n    }" else (compound_statement "{\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      iStack_46c = 3;\n      proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);\n      *(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;\n      uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);\n      iStack_46c = iStack_46c + 1;\n    }" { (expression_statement "uStack_460._2_2_ = (ushort)(byte)uStack_460;" (assignment_expression "uStack_460._2_2_ = (ushort)(byte)uStack_460" (field_expression "uStack_460._2_2_" identifier . field_identifier) = (cast_expression "(ushort)(byte)uStack_460" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)uStack_460" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "iStack_46c = 3;" (assignment_expression "iStack_46c = 3" identifier = number_literal) ;) (expression_statement "proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c);" (call_expression "proxy_socks5_offerencryptedauth((char *)&uStack_460,&iStack_46c)" identifier (argument_list "((char *)&uStack_460,&iStack_46c)" ( (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier)) , (pointer_expression "&iStack_46c" & identifier) ))) ;) (expression_statement "*(undefined1 *)((int)&uStack_460 + iStack_46c) = 2;" (assignment_expression "*(undefined1 *)((int)&uStack_460 + iStack_46c) = 2" (pointer_expression "*(undefined1 *)((int)&uStack_460 + iStack_46c)" * (cast_expression "(undefined1 *)((int)&uStack_460 + iStack_46c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_460 + iStack_46c)" ( (binary_expression "(int)&uStack_460 + iStack_46c" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + identifier) )))) = number_literal) ;) (expression_statement "uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12((char)iStack_46c + -1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12((char)iStack_46c + -1,uStack_460._2_2_)" identifier (argument_list "((char)iStack_46c + -1,uStack_460._2_2_)" ( (binary_expression "(char)iStack_46c + -1" (cast_expression "(char)iStack_46c" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "iStack_46c = iStack_46c + 1;" (assignment_expression "iStack_46c = iStack_46c + 1" identifier = (binary_expression "iStack_46c + 1" identifier + number_literal)) ;) }))) (expression_statement "(*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iStack_46c);" (call_expression "(*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iStack_46c)" (parenthesized_expression "(*(*p_00->sub_socket)->write)" ( (pointer_expression "*(*p_00->sub_socket)->write" * (field_expression "(*p_00->sub_socket)->write" (parenthesized_expression "(*p_00->sub_socket)" ( (pointer_expression "*p_00->sub_socket" * (field_expression "p_00->sub_socket" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->sub_socket,(char *)&uStack_460,iStack_46c)" ( (field_expression "p_00->sub_socket" identifier -> field_identifier) , (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier)) , identifier ))) ;) (expression_statement "p_00->state = 1;" (assignment_expression "p_00->state = 1" (field_expression "p_00->state" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if (p_Var6 == (accept_fn_t)0x0) {\n    in_a3 = (Conf *)p_00->closing_calling_back;\n    (*(*p_00->plug)->closing)\n              (p_00->plug,p_00->closing_error_msg,p_00->closing_error_code,(int)in_a3);\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }" if (parenthesized_expression "(p_Var6 == (accept_fn_t)0x0)" ( (binary_expression "p_Var6 == (accept_fn_t)0x0" identifier == (cast_expression "(accept_fn_t)0x0" ( (type_descriptor "accept_fn_t" type_identifier) ) number_literal)) )) (compound_statement "{\n    in_a3 = (Conf *)p_00->closing_calling_back;\n    (*(*p_00->plug)->closing)\n              (p_00->plug,p_00->closing_error_msg,p_00->closing_error_code,(int)in_a3);\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }" { (expression_statement "in_a3 = (Conf *)p_00->closing_calling_back;" (assignment_expression "in_a3 = (Conf *)p_00->closing_calling_back" identifier = (cast_expression "(Conf *)p_00->closing_calling_back" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_00->closing_calling_back" identifier -> field_identifier))) ;) (expression_statement "(*(*p_00->plug)->closing)\n              (p_00->plug,p_00->closing_error_msg,p_00->closing_error_code,(int)in_a3);" (call_expression "(*(*p_00->plug)->closing)\n              (p_00->plug,p_00->closing_error_msg,p_00->closing_error_code,(int)in_a3)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,p_00->closing_error_msg,p_00->closing_error_code,(int)in_a3)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (field_expression "p_00->closing_error_msg" identifier -> field_identifier) , (field_expression "p_00->closing_error_code" identifier -> field_identifier) , (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if (p_Var6 == (accept_fn_t)0x1) {\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }" if (parenthesized_expression "(p_Var6 == (accept_fn_t)0x1)" ( (binary_expression "p_Var6 == (accept_fn_t)0x1" identifier == (cast_expression "(accept_fn_t)0x1" ( (type_descriptor "accept_fn_t" type_identifier) ) number_literal)) )) (compound_statement "{\n    iVar8 = 0;\n    goto LAB_00025ff8;\n  }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if (p_Var6 == (accept_fn_t)0x3) {\n    iVar8 = (*(*p_00->plug)->accepting)(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx);\n    goto LAB_00025ff8;\n  }" if (parenthesized_expression "(p_Var6 == (accept_fn_t)0x3)" ( (binary_expression "p_Var6 == (accept_fn_t)0x3" identifier == (cast_expression "(accept_fn_t)0x3" ( (type_descriptor "accept_fn_t" type_identifier) ) number_literal)) )) (compound_statement "{\n    iVar8 = (*(*p_00->plug)->accepting)(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx);\n    goto LAB_00025ff8;\n  }" { (expression_statement "iVar8 = (*(*p_00->plug)->accepting)(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx);" (assignment_expression "iVar8 = (*(*p_00->plug)->accepting)(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx)" identifier = (call_expression "(*(*p_00->plug)->accepting)(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx)" (parenthesized_expression "(*(*p_00->plug)->accepting)" ( (pointer_expression "*(*p_00->plug)->accepting" * (field_expression "(*p_00->plug)->accepting" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,p_00->accepting_constructor,p_00->accepting_ctx)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (field_expression "p_00->accepting_constructor" identifier -> field_identifier) , (field_expression "p_00->accepting_ctx" identifier -> field_identifier) )))) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if (p_Var6 != (accept_fn_t)0x2) {\nLAB_00025ec0:\n    in_a3 = (Conf *)0x0;\n    (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5014),0x1f41,0);\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }" if (parenthesized_expression "(p_Var6 != (accept_fn_t)0x2)" ( (binary_expression "p_Var6 != (accept_fn_t)0x2" identifier != (cast_expression "(accept_fn_t)0x2" ( (type_descriptor "accept_fn_t" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_00025ec0:\n    in_a3 = (Conf *)0x0;\n    (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5014),0x1f41,0);\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }" { (labeled_statement "LAB_00025ec0:\n    in_a3 = (Conf *)0x0;" statement_identifier : (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5014),0x1f41,0);" (call_expression "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5014),0x1f41,0)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5014),0x1f41,0)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(puVar10 + 0x98560) + -0x5014)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x5014)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x5014" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) ))) , number_literal , number_literal ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "pbVar7 = &p_00->pending_input_data;" (assignment_expression "pbVar7 = &p_00->pending_input_data" identifier = (pointer_expression "&p_00->pending_input_data" & (field_expression "p_00->pending_input_data" identifier -> field_identifier))) ;) (if_statement "if (p_00->state == 1) {\n    iVar3 = bufchain_size(pbVar7);\n    iVar8 = 1;\n    if (iVar3 < 2) goto LAB_00025ff8;\n    bufchain_fetch(pbVar7,&uStack_460,2);\n    in_a3 = (Conf *)0x0;\n    if (uStack_460._0_1_ != '\x05') {\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0);\n      goto LAB_00025ff8;\n    }\n    if (uStack_460._1_1_ == '\0') {\n      p_00->state = 2;\n    }\n    else if (uStack_460._1_1_ == '\x01') {\n      p_00->state = 4;\n    }\n    else if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }\n    in_a3 = (Conf *)0x0;\n    bufchain_consume(pbVar7,2);\n    iVar8 = p_00->state;\n  }\n  else {\n    iVar8 = p_00->state;\n  }" if (parenthesized_expression "(p_00->state == 1)" ( (binary_expression "p_00->state == 1" (field_expression "p_00->state" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    iVar3 = bufchain_size(pbVar7);\n    iVar8 = 1;\n    if (iVar3 < 2) goto LAB_00025ff8;\n    bufchain_fetch(pbVar7,&uStack_460,2);\n    in_a3 = (Conf *)0x0;\n    if (uStack_460._0_1_ != '\x05') {\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0);\n      goto LAB_00025ff8;\n    }\n    if (uStack_460._1_1_ == '\0') {\n      p_00->state = 2;\n    }\n    else if (uStack_460._1_1_ == '\x01') {\n      p_00->state = 4;\n    }\n    else if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }\n    in_a3 = (Conf *)0x0;\n    bufchain_consume(pbVar7,2);\n    iVar8 = p_00->state;\n  }" { (expression_statement "iVar3 = bufchain_size(pbVar7);" (assignment_expression "iVar3 = bufchain_size(pbVar7)" identifier = (call_expression "bufchain_size(pbVar7)" identifier (argument_list "(pbVar7)" ( identifier )))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (if_statement "if (iVar3 < 2) goto LAB_00025ff8;" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;)) (expression_statement "bufchain_fetch(pbVar7,&uStack_460,2);" (call_expression "bufchain_fetch(pbVar7,&uStack_460,2)" identifier (argument_list "(pbVar7,&uStack_460,2)" ( identifier , (pointer_expression "&uStack_460" & identifier) , number_literal ))) ;) (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uStack_460._0_1_ != '\x05') {\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0);\n      goto LAB_00025ff8;\n    }" if (parenthesized_expression "(uStack_460._0_1_ != '\x05')" ( (binary_expression "uStack_460._0_1_ != '\x05'" (field_expression "uStack_460._0_1_" identifier . field_identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0);\n      goto LAB_00025ff8;\n    }" { (expression_statement "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0);" (call_expression "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5304),8000,0)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(puVar10 + 0x98560) + -0x5304)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x5304)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x5304" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) ))) , number_literal , number_literal ))) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if (uStack_460._1_1_ == '\0') {\n      p_00->state = 2;\n    }\n    else if (uStack_460._1_1_ == '\x01') {\n      p_00->state = 4;\n    }\n    else if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }" if (parenthesized_expression "(uStack_460._1_1_ == '\0')" ( (binary_expression "uStack_460._1_1_ == '\0'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      p_00->state = 2;\n    }" { (expression_statement "p_00->state = 2;" (assignment_expression "p_00->state = 2" (field_expression "p_00->state" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else if (uStack_460._1_1_ == '\x01') {\n      p_00->state = 4;\n    }\n    else if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }" else (if_statement "if (uStack_460._1_1_ == '\x01') {\n      p_00->state = 4;\n    }\n    else if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }" if (parenthesized_expression "(uStack_460._1_1_ == '\x01')" ( (binary_expression "uStack_460._1_1_ == '\x01'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n      p_00->state = 4;\n    }" { (expression_statement "p_00->state = 4;" (assignment_expression "p_00->state = 4" (field_expression "p_00->state" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }" else (if_statement "if (uStack_460._1_1_ == '\x02') {\n      p_00->state = 5;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }" if (parenthesized_expression "(uStack_460._1_1_ == '\x02')" ( (binary_expression "uStack_460._1_1_ == '\x02'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      p_00->state = 5;\n    }" { (expression_statement "p_00->state = 5;" (assignment_expression "p_00->state = 5" (field_expression "p_00->state" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }" else (compound_statement "{\n      in_a3 = (Conf *)0x0;\n      if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }\n      p_00->state = 6;\n    }" { (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uStack_460._1_1_ != '\x03') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }" if (parenthesized_expression "(uStack_460._1_1_ != '\x03')" ( (binary_expression "uStack_460._1_1_ != '\x03'" (field_expression "uStack_460._1_1_" identifier . field_identifier) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;\n        goto LAB_00025ff8;\n      }" { (expression_statement "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)\n        ;" (call_expression "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc),8000,0)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(puVar10 + 0x98560) + -0x52cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x52cc)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x52cc" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) ))) , number_literal , number_literal ))) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "p_00->state = 6;" (assignment_expression "p_00->state = 6" (field_expression "p_00->state" identifier -> field_identifier) = number_literal) ;) }))))))) (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bufchain_consume(pbVar7,2);" (call_expression "bufchain_consume(pbVar7,2)" identifier (argument_list "(pbVar7,2)" ( identifier , number_literal ))) ;) (expression_statement "iVar8 = p_00->state;" (assignment_expression "iVar8 = p_00->state" identifier = (field_expression "p_00->state" identifier -> field_identifier)) ;) }) (else_clause "else {\n    iVar8 = p_00->state;\n  }" else (compound_statement "{\n    iVar8 = p_00->state;\n  }" { (expression_statement "iVar8 = p_00->state;" (assignment_expression "iVar8 = p_00->state" identifier = (field_expression "p_00->state" identifier -> field_identifier)) ;) }))) (if_statement "if (iVar8 == 7) {\n    pbVar7 = &p_00->pending_input_data;\n    iVar8 = bufchain_size(pbVar7);\n    if (1 < iVar8) {\n      bufchain_fetch(pbVar7,&uStack_460,2);\n      if (uStack_460._0_1_ == '\x01') {\n        in_a3 = (Conf *)0x0;\n        if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }\n        bufchain_consume(pbVar7,2);\n        p_00->state = 2;\n        goto LAB_000262a8;\n      }\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0);\n    }\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }" if (parenthesized_expression "(iVar8 == 7)" ( (binary_expression "iVar8 == 7" identifier == number_literal) )) (compound_statement "{\n    pbVar7 = &p_00->pending_input_data;\n    iVar8 = bufchain_size(pbVar7);\n    if (1 < iVar8) {\n      bufchain_fetch(pbVar7,&uStack_460,2);\n      if (uStack_460._0_1_ == '\x01') {\n        in_a3 = (Conf *)0x0;\n        if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }\n        bufchain_consume(pbVar7,2);\n        p_00->state = 2;\n        goto LAB_000262a8;\n      }\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0);\n    }\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }" { (expression_statement "pbVar7 = &p_00->pending_input_data;" (assignment_expression "pbVar7 = &p_00->pending_input_data" identifier = (pointer_expression "&p_00->pending_input_data" & (field_expression "p_00->pending_input_data" identifier -> field_identifier))) ;) (expression_statement "iVar8 = bufchain_size(pbVar7);" (assignment_expression "iVar8 = bufchain_size(pbVar7)" identifier = (call_expression "bufchain_size(pbVar7)" identifier (argument_list "(pbVar7)" ( identifier )))) ;) (if_statement "if (1 < iVar8) {\n      bufchain_fetch(pbVar7,&uStack_460,2);\n      if (uStack_460._0_1_ == '\x01') {\n        in_a3 = (Conf *)0x0;\n        if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }\n        bufchain_consume(pbVar7,2);\n        p_00->state = 2;\n        goto LAB_000262a8;\n      }\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0);\n    }" if (parenthesized_expression "(1 < iVar8)" ( (binary_expression "1 < iVar8" number_literal < identifier) )) (compound_statement "{\n      bufchain_fetch(pbVar7,&uStack_460,2);\n      if (uStack_460._0_1_ == '\x01') {\n        in_a3 = (Conf *)0x0;\n        if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }\n        bufchain_consume(pbVar7,2);\n        p_00->state = 2;\n        goto LAB_000262a8;\n      }\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0);\n    }" { (expression_statement "bufchain_fetch(pbVar7,&uStack_460,2);" (call_expression "bufchain_fetch(pbVar7,&uStack_460,2)" identifier (argument_list "(pbVar7,&uStack_460,2)" ( identifier , (pointer_expression "&uStack_460" & identifier) , number_literal ))) ;) (if_statement "if (uStack_460._0_1_ == '\x01') {\n        in_a3 = (Conf *)0x0;\n        if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }\n        bufchain_consume(pbVar7,2);\n        p_00->state = 2;\n        goto LAB_000262a8;\n      }" if (parenthesized_expression "(uStack_460._0_1_ == '\x01')" ( (binary_expression "uStack_460._0_1_ == '\x01'" (field_expression "uStack_460._0_1_" identifier . field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        in_a3 = (Conf *)0x0;\n        if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }\n        bufchain_consume(pbVar7,2);\n        p_00->state = 2;\n        goto LAB_000262a8;\n      }" { (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uStack_460._1_1_ != '\0') {\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }" if (parenthesized_expression "(uStack_460._1_1_ != '\0')" ( (binary_expression "uStack_460._1_1_ != '\0'" (field_expression "uStack_460._1_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);\n          iVar8 = 1;\n          goto LAB_00025ff8;\n        }" { (expression_statement "(*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0);" (call_expression "(*(*p_00->plug)->closing)\n                    (p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5244),8000,0)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(puVar10 + 0x98560) + -0x5244)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x5244)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x5244" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) ))) , number_literal , number_literal ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "bufchain_consume(pbVar7,2);" (call_expression "bufchain_consume(pbVar7,2)" identifier (argument_list "(pbVar7,2)" ( identifier , number_literal ))) ;) (expression_statement "p_00->state = 2;" (assignment_expression "p_00->state = 2" (field_expression "p_00->state" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_000262a8;" goto statement_identifier ;) })) (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0);" (call_expression "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5290),8000,0)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(puVar10 + 0x98560) + -0x5290)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x5290)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x5290" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) ))) , number_literal , number_literal ))) ;) })) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if ((iVar8 == 8) && (iVar8 = proxy_socks5_handlechap(p_00), iVar8 != 0)) goto LAB_00025ff8;" if (parenthesized_expression "((iVar8 == 8) && (iVar8 = proxy_socks5_handlechap(p_00), iVar8 != 0))" ( (binary_expression "(iVar8 == 8) && (iVar8 = proxy_socks5_handlechap(p_00), iVar8 != 0)" (parenthesized_expression "(iVar8 == 8)" ( (binary_expression "iVar8 == 8" identifier == number_literal) )) && (parenthesized_expression "(iVar8 = proxy_socks5_handlechap(p_00), iVar8 != 0)" ( (comma_expression "iVar8 = proxy_socks5_handlechap(p_00), iVar8 != 0" (assignment_expression "iVar8 = proxy_socks5_handlechap(p_00)" identifier = (call_expression "proxy_socks5_handlechap(p_00)" identifier (argument_list "(p_00)" ( identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;)) (expression_statement "iVar8 = p_00->state;" (assignment_expression "iVar8 = p_00->state" identifier = (field_expression "p_00->state" identifier -> field_identifier)) ;) (if_statement "if (iVar8 == 2) {\nLAB_000262a8:\n    iVar8 = (**(code **)(puVar10 + 0x98720))(p_00->remote_addr);\n    if (iVar8 == 1) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,1);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 10;\n    }\n    else if (iVar8 == 2) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,4);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 0x16;\n    }\n    else {\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }\n    uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n    iVar3 = p_00->remote_port;\n    acStack_462[iVar8] = (char)((uint)iVar3 >> 8);\n    acStack_462[iVar8 + 1] = (char)iVar3;\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar8);\n    p_00->state = 3;\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_000262a8:\n    iVar8 = (**(code **)(puVar10 + 0x98720))(p_00->remote_addr);\n    if (iVar8 == 1) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,1);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 10;\n    }\n    else if (iVar8 == 2) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,4);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 0x16;\n    }\n    else {\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }\n    uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n    iVar3 = p_00->remote_port;\n    acStack_462[iVar8] = (char)((uint)iVar3 >> 8);\n    acStack_462[iVar8 + 1] = (char)iVar3;\n    (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar8);\n    p_00->state = 3;\n    iVar8 = 1;\n    goto LAB_00025ff8;\n  }" { (labeled_statement "LAB_000262a8:\n    iVar8 = (**(code **)(puVar10 + 0x98720))(p_00->remote_addr);" statement_identifier : (expression_statement "iVar8 = (**(code **)(puVar10 + 0x98720))(p_00->remote_addr);" (assignment_expression "iVar8 = (**(code **)(puVar10 + 0x98720))(p_00->remote_addr)" identifier = (call_expression "(**(code **)(puVar10 + 0x98720))(p_00->remote_addr)" (parenthesized_expression "(**(code **)(puVar10 + 0x98720))" ( (pointer_expression "**(code **)(puVar10 + 0x98720)" * (pointer_expression "*(code **)(puVar10 + 0x98720)" * (cast_expression "(code **)(puVar10 + 0x98720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x98720)" ( (binary_expression "puVar10 + 0x98720" identifier + number_literal) ))))) )) (argument_list "(p_00->remote_addr)" ( (field_expression "p_00->remote_addr" identifier -> field_identifier) )))) ;)) (if_statement "if (iVar8 == 1) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,1);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 10;\n    }\n    else if (iVar8 == 2) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,4);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 0x16;\n    }\n    else {\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n      uStack_460 = CONCAT31(uStack_460._0_3_,1);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 10;\n    }" { (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,1);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,1)" identifier = (call_expression "CONCAT31(uStack_460._0_3_,1)" identifier (argument_list "(uStack_460._0_3_,1)" ( (field_expression "uStack_460._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);" (call_expression "(**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c)" (parenthesized_expression "(**(code **)(puVar10 + 0x98724))" ( (pointer_expression "**(code **)(puVar10 + 0x98724)" * (pointer_expression "*(code **)(puVar10 + 0x98724)" * (cast_expression "(code **)(puVar10 + 0x98724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x98724)" ( (binary_expression "puVar10 + 0x98724" identifier + number_literal) ))))) )) (argument_list "(p_00->remote_addr,&uStack_45c)" ( (field_expression "p_00->remote_addr" identifier -> field_identifier) , (pointer_expression "&uStack_45c" & identifier) ))) ;) (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" identifier = number_literal) ;) }) (else_clause "else if (iVar8 == 2) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,4);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 0x16;\n    }\n    else {\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }" else (if_statement "if (iVar8 == 2) {\n      uStack_460 = CONCAT31(uStack_460._0_3_,4);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 0x16;\n    }\n    else {\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n      uStack_460 = CONCAT31(uStack_460._0_3_,4);\n      (**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);\n      iVar8 = 0x16;\n    }" { (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,4);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,4)" identifier = (call_expression "CONCAT31(uStack_460._0_3_,4)" identifier (argument_list "(uStack_460._0_3_,4)" ( (field_expression "uStack_460._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c);" (call_expression "(**(code **)(puVar10 + 0x98724))(p_00->remote_addr,&uStack_45c)" (parenthesized_expression "(**(code **)(puVar10 + 0x98724))" ( (pointer_expression "**(code **)(puVar10 + 0x98724)" * (pointer_expression "*(code **)(puVar10 + 0x98724)" * (cast_expression "(code **)(puVar10 + 0x98724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x98724)" ( (binary_expression "puVar10 + 0x98724" identifier + number_literal) ))))) )) (argument_list "(p_00->remote_addr,&uStack_45c)" ( (field_expression "p_00->remote_addr" identifier -> field_identifier) , (pointer_expression "&uStack_45c" & identifier) ))) ;) (expression_statement "iVar8 = 0x16;" (assignment_expression "iVar8 = 0x16" identifier = number_literal) ;) }) (else_clause "else {\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }" else (compound_statement "{\n      if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }\n      uStack_460 = CONCAT31(uStack_460._0_3_,3);\n      (**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);\n      cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);\n      uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);\n      iVar8 = cVar4 + 7;\n    }" { (if_statement "if (iVar8 != 3) {\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }" if (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) (compound_statement "{\n        in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);\n        (**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );\n        goto LAB_0002640c;\n      }" { (expression_statement "in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40);" (assignment_expression "in_a3 = (Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40)" identifier = (cast_expression "(Conf *)(*(int *)(puVar10 + 0x98560) + -0x4e40)" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x4e40)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x4e40" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  );" (call_expression "(**(code **)(puVar10 + 0x98f10))\n                  (*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  )" (parenthesized_expression "(**(code **)(puVar10 + 0x98f10))" ( (pointer_expression "**(code **)(puVar10 + 0x98f10)" * (pointer_expression "*(code **)(puVar10 + 0x98f10)" * (cast_expression "(code **)(puVar10 + 0x98f10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x98f10)" ( (binary_expression "puVar10 + 0x98f10" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar10 + 0x98560) + -0x5404,*(int *)(puVar10 + 0x98560) + -0x54b4,0x46a\n                  )" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x5404" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar10 + 0x98560) + -0x54b4" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (goto_statement "goto LAB_0002640c;" goto statement_identifier ;) })) (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,3);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,3)" identifier = (call_expression "CONCAT31(uStack_460._0_3_,3)" identifier (argument_list "(uStack_460._0_3_,3)" ( (field_expression "uStack_460._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100);" (call_expression "(**(code **)(puVar10 + 0x98568))(p_00->remote_addr,(int)&uStack_45c + 1,0x100)" (parenthesized_expression "(**(code **)(puVar10 + 0x98568))" ( (pointer_expression "**(code **)(puVar10 + 0x98568)" * (pointer_expression "*(code **)(puVar10 + 0x98568)" * (cast_expression "(code **)(puVar10 + 0x98568)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x98568)" ( (binary_expression "puVar10 + 0x98568" identifier + number_literal) ))))) )) (argument_list "(p_00->remote_addr,(int)&uStack_45c + 1,0x100)" ( (field_expression "p_00->remote_addr" identifier -> field_identifier) , (binary_expression "(int)&uStack_45c + 1" (cast_expression "(int)&uStack_45c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_45c" & identifier)) + number_literal) , number_literal ))) ;) (expression_statement "cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1);" (assignment_expression "cVar4 = (**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1)" identifier = (call_expression "(**(code **)(puVar10 + 0x9902c))((int)&uStack_45c + 1)" (parenthesized_expression "(**(code **)(puVar10 + 0x9902c))" ( (pointer_expression "**(code **)(puVar10 + 0x9902c)" * (pointer_expression "*(code **)(puVar10 + 0x9902c)" * (cast_expression "(code **)(puVar10 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x9902c)" ( (binary_expression "puVar10 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_45c + 1)" ( (binary_expression "(int)&uStack_45c + 1" (cast_expression "(int)&uStack_45c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_45c" & identifier)) + number_literal) )))) ;) (expression_statement "uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_);" (assignment_expression "uStack_45c = CONCAT13(cVar4,uStack_45c._1_3_)" identifier = (call_expression "CONCAT13(cVar4,uStack_45c._1_3_)" identifier (argument_list "(cVar4,uStack_45c._1_3_)" ( identifier , (field_expression "uStack_45c._1_3_" identifier . field_identifier) )))) ;) (expression_statement "iVar8 = cVar4 + 7;" (assignment_expression "iVar8 = cVar4 + 7" identifier = (binary_expression "cVar4 + 7" identifier + number_literal)) ;) }))))) (expression_statement "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(1,uStack_460._2_2_)" identifier (argument_list "(1,uStack_460._2_2_)" ( number_literal , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT13(5,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(5,uStack_460._1_3_)" identifier = (call_expression "CONCAT13(5,uStack_460._1_3_)" identifier (argument_list "(5,uStack_460._1_3_)" ( number_literal , (field_expression "uStack_460._1_3_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;" (assignment_expression "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" identifier = (binary_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (call_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_)" identifier (argument_list "(uStack_460._0_2_,uStack_460._2_2_)" ( (field_expression "uStack_460._0_2_" identifier . field_identifier) , (field_expression "uStack_460._2_2_" identifier . field_identifier) ))) & number_literal)) ;) (expression_statement "iVar3 = p_00->remote_port;" (assignment_expression "iVar3 = p_00->remote_port" identifier = (field_expression "p_00->remote_port" identifier -> field_identifier)) ;) (expression_statement "acStack_462[iVar8] = (char)((uint)iVar3 >> 8);" (assignment_expression "acStack_462[iVar8] = (char)((uint)iVar3 >> 8)" (subscript_expression "acStack_462[iVar8]" identifier [ identifier ]) = (cast_expression "(char)((uint)iVar3 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar3 >> 8)" ( (binary_expression "(uint)iVar3 >> 8" (cast_expression "(uint)iVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "acStack_462[iVar8 + 1] = (char)iVar3;" (assignment_expression "acStack_462[iVar8 + 1] = (char)iVar3" (subscript_expression "acStack_462[iVar8 + 1]" identifier [ (binary_expression "iVar8 + 1" identifier + number_literal) ]) = (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar8);" (call_expression "(*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar8)" (parenthesized_expression "(*(*p_00->sub_socket)->write)" ( (pointer_expression "*(*p_00->sub_socket)->write" * (field_expression "(*p_00->sub_socket)->write" (parenthesized_expression "(*p_00->sub_socket)" ( (pointer_expression "*p_00->sub_socket" * (field_expression "p_00->sub_socket" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->sub_socket,(char *)&uStack_460,iVar8)" ( (field_expression "p_00->sub_socket" identifier -> field_identifier) , (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier)) , identifier ))) ;) (expression_statement "p_00->state = 3;" (assignment_expression "p_00->state = 3" (field_expression "p_00->state" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if (iVar8 != 3) {\n    if (iVar8 == 4) {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 == 5) {\n      pcVar1 = conf_get_str(p_00->conf,0x10);\n      pcVar2 = conf_get_str(p_00->conf,0x11);\n      if ((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')) {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;\n        iVar8 = 1;\n      }\n      else {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }\n      goto LAB_00025ff8;\n    }\n    if ((iVar8 == 6) && (iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0)) goto LAB_00025ff8;\n    goto LAB_00025ec0;\n  }" if (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) (compound_statement "{\n    if (iVar8 == 4) {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 == 5) {\n      pcVar1 = conf_get_str(p_00->conf,0x10);\n      pcVar2 = conf_get_str(p_00->conf,0x11);\n      if ((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')) {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;\n        iVar8 = 1;\n      }\n      else {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }\n      goto LAB_00025ff8;\n    }\n    if ((iVar8 == 6) && (iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0)) goto LAB_00025ff8;\n    goto LAB_00025ec0;\n  }" { (if_statement "if (iVar8 == 4) {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }" if (parenthesized_expression "(iVar8 == 4)" ( (binary_expression "iVar8 == 4" identifier == number_literal) )) (compound_statement "{\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }" { (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0);" (call_expression "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x509c),8000,0)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(puVar10 + 0x98560) + -0x509c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x509c)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x509c" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) ))) , number_literal , number_literal ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if (iVar8 == 5) {\n      pcVar1 = conf_get_str(p_00->conf,0x10);\n      pcVar2 = conf_get_str(p_00->conf,0x11);\n      if ((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')) {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;\n        iVar8 = 1;\n      }\n      else {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }\n      goto LAB_00025ff8;\n    }" if (parenthesized_expression "(iVar8 == 5)" ( (binary_expression "iVar8 == 5" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = conf_get_str(p_00->conf,0x10);\n      pcVar2 = conf_get_str(p_00->conf,0x11);\n      if ((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')) {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;\n        iVar8 = 1;\n      }\n      else {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }\n      goto LAB_00025ff8;\n    }" { (expression_statement "pcVar1 = conf_get_str(p_00->conf,0x10);" (assignment_expression "pcVar1 = conf_get_str(p_00->conf,0x10)" identifier = (call_expression "conf_get_str(p_00->conf,0x10)" identifier (argument_list "(p_00->conf,0x10)" ( (field_expression "p_00->conf" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "pcVar2 = conf_get_str(p_00->conf,0x11);" (assignment_expression "pcVar2 = conf_get_str(p_00->conf,0x11)" identifier = (call_expression "conf_get_str(p_00->conf,0x11)" identifier (argument_list "(p_00->conf,0x11)" ( (field_expression "p_00->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if ((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')) {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;\n        iVar8 = 1;\n      }\n      else {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }" if (parenthesized_expression "((*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0'))" ( (binary_expression "(*pcVar1 == '\0') && (in_a3 = (Conf *)0x0, *pcVar2 == '\0')" (parenthesized_expression "(*pcVar1 == '\0')" ( (binary_expression "*pcVar1 == '\0'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(in_a3 = (Conf *)0x0, *pcVar2 == '\0')" ( (comma_expression "in_a3 = (Conf *)0x0, *pcVar2 == '\0'" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "*pcVar2 == '\0'" (pointer_expression "*pcVar2" * identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;\n        iVar8 = 1;\n      }" { (expression_statement "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)\n        ;" (call_expression "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x5068),8000,0)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(puVar10 + 0x98560) + -0x5068)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x5068)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x5068" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) ))) , number_literal , number_literal ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);\n        iVar8 = 1;\n        if (0 < iVar3) {\n          iVar8 = iVar3;\n        }\n        if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);\n        if (iVar3 < 1) {\n          iVar3 = 1;\n        }\n        iVar9 = 0xff;\n        if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }\n        uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);\n        uStack_460 = CONCAT13(1,uStack_460._1_3_);\n        in_a3 = (Conf *)0x1ff;\n        (**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);\n        *(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;\n        (**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);\n        (*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);\n        p_00->state = 7;\n        iVar8 = 1;\n      }" { (expression_statement "iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1);" (assignment_expression "iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar1)" identifier = (call_expression "(**(code **)(puVar10 + 0x9902c))(pcVar1)" (parenthesized_expression "(**(code **)(puVar10 + 0x9902c))" ( (pointer_expression "**(code **)(puVar10 + 0x9902c)" * (pointer_expression "*(code **)(puVar10 + 0x9902c)" * (cast_expression "(code **)(puVar10 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x9902c)" ( (binary_expression "puVar10 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (if_statement "if (0 < iVar3) {\n          iVar8 = iVar3;\n        }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n          iVar8 = iVar3;\n        }" { (expression_statement "iVar8 = iVar3;" (assignment_expression "iVar8 = iVar3" identifier = identifier) ;) })) (if_statement "if (0xff < iVar8) {\n          iVar8 = 0xff;\n        }" if (parenthesized_expression "(0xff < iVar8)" ( (binary_expression "0xff < iVar8" number_literal < identifier) )) (compound_statement "{\n          iVar8 = 0xff;\n        }" { (expression_statement "iVar8 = 0xff;" (assignment_expression "iVar8 = 0xff" identifier = number_literal) ;) })) (expression_statement "iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2);" (assignment_expression "iVar3 = (**(code **)(puVar10 + 0x9902c))(pcVar2)" identifier = (call_expression "(**(code **)(puVar10 + 0x9902c))(pcVar2)" (parenthesized_expression "(**(code **)(puVar10 + 0x9902c))" ( (pointer_expression "**(code **)(puVar10 + 0x9902c)" * (pointer_expression "*(code **)(puVar10 + 0x9902c)" * (cast_expression "(code **)(puVar10 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x9902c)" ( (binary_expression "puVar10 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "(pcVar2)" ( identifier )))) ;) (if_statement "if (iVar3 < 1) {\n          iVar3 = 1;\n        }" if (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) (compound_statement "{\n          iVar3 = 1;\n        }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) })) (expression_statement "iVar9 = 0xff;" (assignment_expression "iVar9 = 0xff" identifier = number_literal) ;) (if_statement "if (iVar3 < 0x100) {\n          iVar9 = iVar3;\n        }" if (parenthesized_expression "(iVar3 < 0x100)" ( (binary_expression "iVar3 < 0x100" identifier < number_literal) )) (compound_statement "{\n          iVar9 = iVar3;\n        }" { (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" identifier = identifier) ;) })) (expression_statement "uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12((char)iVar8,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12((char)iVar8,uStack_460._2_2_)" identifier (argument_list "((char)iVar8,uStack_460._2_2_)" ( (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier) , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT13(1,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(1,uStack_460._1_3_)" identifier = (call_expression "CONCAT13(1,uStack_460._1_3_)" identifier (argument_list "(1,uStack_460._1_3_)" ( number_literal , (field_expression "uStack_460._1_3_" identifier . field_identifier) )))) ;) (expression_statement "in_a3 = (Conf *)0x1ff;" (assignment_expression "in_a3 = (Conf *)0x1ff" identifier = (cast_expression "(Conf *)0x1ff" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8);" (call_expression "(**(code **)(puVar10 + 0x9905c))((int)&uStack_460 + 2,pcVar1,iVar8)" (parenthesized_expression "(**(code **)(puVar10 + 0x9905c))" ( (pointer_expression "**(code **)(puVar10 + 0x9905c)" * (pointer_expression "*(code **)(puVar10 + 0x9905c)" * (cast_expression "(code **)(puVar10 + 0x9905c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x9905c)" ( (binary_expression "puVar10 + 0x9905c" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_460 + 2,pcVar1,iVar8)" ( (binary_expression "(int)&uStack_460 + 2" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + number_literal) , identifier , identifier ))) ;) (expression_statement "*(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9;" (assignment_expression "*(char *)((int)&uStack_460 + iVar8 + 2) = (char)iVar9" (pointer_expression "*(char *)((int)&uStack_460 + iVar8 + 2)" * (cast_expression "(char *)((int)&uStack_460 + iVar8 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_460 + iVar8 + 2)" ( (binary_expression "(int)&uStack_460 + iVar8 + 2" (binary_expression "(int)&uStack_460 + iVar8" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + identifier) + number_literal) )))) = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9);" (call_expression "(**(code **)(puVar10 + 0x990e8))((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9)" (parenthesized_expression "(**(code **)(puVar10 + 0x990e8))" ( (pointer_expression "**(code **)(puVar10 + 0x990e8)" * (pointer_expression "*(code **)(puVar10 + 0x990e8)" * (cast_expression "(code **)(puVar10 + 0x990e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x990e8)" ( (binary_expression "puVar10 + 0x990e8" identifier + number_literal) ))))) )) (argument_list "((char *)((int)&uStack_460 + iVar8 + 3),pcVar2,iVar9)" ( (cast_expression "(char *)((int)&uStack_460 + iVar8 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_460 + iVar8 + 3)" ( (binary_expression "(int)&uStack_460 + iVar8 + 3" (binary_expression "(int)&uStack_460 + iVar8" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + identifier) + number_literal) ))) , identifier , identifier ))) ;) (expression_statement "(*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3);" (call_expression "(*(*p_00->sub_socket)->write)(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3)" (parenthesized_expression "(*(*p_00->sub_socket)->write)" ( (pointer_expression "*(*p_00->sub_socket)->write" * (field_expression "(*p_00->sub_socket)->write" (parenthesized_expression "(*p_00->sub_socket)" ( (pointer_expression "*p_00->sub_socket" * (field_expression "p_00->sub_socket" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->sub_socket,(char *)&uStack_460,iVar9 + iVar8 + 3)" ( (field_expression "p_00->sub_socket" identifier -> field_identifier) , (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier)) , (binary_expression "iVar9 + iVar8 + 3" (binary_expression "iVar9 + iVar8" identifier + identifier) + number_literal) ))) ;) (expression_statement "p_00->state = 7;" (assignment_expression "p_00->state = 7" (field_expression "p_00->state" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if ((iVar8 == 6) && (iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0)) goto LAB_00025ff8;" if (parenthesized_expression "((iVar8 == 6) && (iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0))" ( (binary_expression "(iVar8 == 6) && (iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0)" (parenthesized_expression "(iVar8 == 6)" ( (binary_expression "iVar8 == 6" identifier == number_literal) )) && (parenthesized_expression "(iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0)" ( (comma_expression "iVar8 = proxy_socks5_selectchap(p_00), iVar8 != 0" (assignment_expression "iVar8 = proxy_socks5_selectchap(p_00)" identifier = (call_expression "proxy_socks5_selectchap(p_00)" identifier (argument_list "(p_00)" ( identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;)) (goto_statement "goto LAB_00025ec0;" goto statement_identifier ;) })) (labeled_statement "LAB_0002640c:\n  pbVar7 = &p_00->pending_input_data;" statement_identifier : (expression_statement "pbVar7 = &p_00->pending_input_data;" (assignment_expression "pbVar7 = &p_00->pending_input_data" identifier = (pointer_expression "&p_00->pending_input_data" & (field_expression "p_00->pending_input_data" identifier -> field_identifier))) ;)) (expression_statement "iVar8 = bufchain_size(pbVar7);" (assignment_expression "iVar8 = bufchain_size(pbVar7)" identifier = (call_expression "bufchain_size(pbVar7)" identifier (argument_list "(pbVar7)" ( identifier )))) ;) (if_statement "if (4 < iVar8) {\n    bufchain_fetch(pbVar7,&cStack_468,5);\n    iVar8 = (int)cStack_467;\n    if (cStack_468 != '\x05') {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 != 0) {\n      iVar3 = *(int *)(puVar10 + 0x98560);\n      uStack_460 = *(undefined4 *)(iVar3 + -0x51d0);\n      uStack_45c = *(undefined4 *)(iVar3 + -0x51cc);\n      uStack_458 = *(undefined4 *)(iVar3 + -0x51c8);\n      uStack_454 = *(undefined2 *)(iVar3 + -0x51c4);\n      if (7 < (iVar8 - 1U & 0xff)) {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);\n        (**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );\n        iVar8 = FUN_00026560(p_00->plug);\n        return iVar8;\n      }\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar8 = (*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))();\n      return iVar8;\n    }\n    if (cStack_465 == '\x03') {\n      iVar8 = bStack_464 + 6;\n    }\n    else if (cStack_465 == '\x04') {\n      iVar8 = 0x16;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }\n    iVar3 = bufchain_size(pbVar7);\n    if (iVar8 <= iVar3) {\n      bufchain_consume(pbVar7,iVar8);\n      proxy_activate(p_00);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n  }" if (parenthesized_expression "(4 < iVar8)" ( (binary_expression "4 < iVar8" number_literal < identifier) )) (compound_statement "{\n    bufchain_fetch(pbVar7,&cStack_468,5);\n    iVar8 = (int)cStack_467;\n    if (cStack_468 != '\x05') {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n    if (iVar8 != 0) {\n      iVar3 = *(int *)(puVar10 + 0x98560);\n      uStack_460 = *(undefined4 *)(iVar3 + -0x51d0);\n      uStack_45c = *(undefined4 *)(iVar3 + -0x51cc);\n      uStack_458 = *(undefined4 *)(iVar3 + -0x51c8);\n      uStack_454 = *(undefined2 *)(iVar3 + -0x51c4);\n      if (7 < (iVar8 - 1U & 0xff)) {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);\n        (**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );\n        iVar8 = FUN_00026560(p_00->plug);\n        return iVar8;\n      }\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar8 = (*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))();\n      return iVar8;\n    }\n    if (cStack_465 == '\x03') {\n      iVar8 = bStack_464 + 6;\n    }\n    else if (cStack_465 == '\x04') {\n      iVar8 = 0x16;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }\n    iVar3 = bufchain_size(pbVar7);\n    if (iVar8 <= iVar3) {\n      bufchain_consume(pbVar7,iVar8);\n      proxy_activate(p_00);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }\n  }" { (expression_statement "bufchain_fetch(pbVar7,&cStack_468,5);" (call_expression "bufchain_fetch(pbVar7,&cStack_468,5)" identifier (argument_list "(pbVar7,&cStack_468,5)" ( identifier , (pointer_expression "&cStack_468" & identifier) , number_literal ))) ;) (expression_statement "iVar8 = (int)cStack_467;" (assignment_expression "iVar8 = (int)cStack_467" identifier = (cast_expression "(int)cStack_467" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (cStack_468 != '\x05') {\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }" if (parenthesized_expression "(cStack_468 != '\x05')" ( (binary_expression "cStack_468 != '\x05'" identifier != (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n      in_a3 = (Conf *)0x0;\n      (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }" { (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0);" (call_expression "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -21000),8000,0)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(puVar10 + 0x98560) + -21000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -21000)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -21000" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) ))) , number_literal , number_literal ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (if_statement "if (iVar8 != 0) {\n      iVar3 = *(int *)(puVar10 + 0x98560);\n      uStack_460 = *(undefined4 *)(iVar3 + -0x51d0);\n      uStack_45c = *(undefined4 *)(iVar3 + -0x51cc);\n      uStack_458 = *(undefined4 *)(iVar3 + -0x51c8);\n      uStack_454 = *(undefined2 *)(iVar3 + -0x51c4);\n      if (7 < (iVar8 - 1U & 0xff)) {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);\n        (**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );\n        iVar8 = FUN_00026560(p_00->plug);\n        return iVar8;\n      }\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar8 = (*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))();\n      return iVar8;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(puVar10 + 0x98560);\n      uStack_460 = *(undefined4 *)(iVar3 + -0x51d0);\n      uStack_45c = *(undefined4 *)(iVar3 + -0x51cc);\n      uStack_458 = *(undefined4 *)(iVar3 + -0x51c8);\n      uStack_454 = *(undefined2 *)(iVar3 + -0x51c4);\n      if (7 < (iVar8 - 1U & 0xff)) {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);\n        (**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );\n        iVar8 = FUN_00026560(p_00->plug);\n        return iVar8;\n      }\n                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar8 = (*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))();\n      return iVar8;\n    }" { (expression_statement "iVar3 = *(int *)(puVar10 + 0x98560);" (assignment_expression "iVar3 = *(int *)(puVar10 + 0x98560)" identifier = (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) ))))) ;) (expression_statement "uStack_460 = *(undefined4 *)(iVar3 + -0x51d0);" (assignment_expression "uStack_460 = *(undefined4 *)(iVar3 + -0x51d0)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + -0x51d0)" * (cast_expression "(undefined4 *)(iVar3 + -0x51d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x51d0)" ( (binary_expression "iVar3 + -0x51d0" identifier + number_literal) ))))) ;) (expression_statement "uStack_45c = *(undefined4 *)(iVar3 + -0x51cc);" (assignment_expression "uStack_45c = *(undefined4 *)(iVar3 + -0x51cc)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + -0x51cc)" * (cast_expression "(undefined4 *)(iVar3 + -0x51cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x51cc)" ( (binary_expression "iVar3 + -0x51cc" identifier + number_literal) ))))) ;) (expression_statement "uStack_458 = *(undefined4 *)(iVar3 + -0x51c8);" (assignment_expression "uStack_458 = *(undefined4 *)(iVar3 + -0x51c8)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + -0x51c8)" * (cast_expression "(undefined4 *)(iVar3 + -0x51c8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x51c8)" ( (binary_expression "iVar3 + -0x51c8" identifier + number_literal) ))))) ;) (expression_statement "uStack_454 = *(undefined2 *)(iVar3 + -0x51c4);" (assignment_expression "uStack_454 = *(undefined2 *)(iVar3 + -0x51c4)" identifier = (pointer_expression "*(undefined2 *)(iVar3 + -0x51c4)" * (cast_expression "(undefined2 *)(iVar3 + -0x51c4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x51c4)" ( (binary_expression "iVar3 + -0x51c4" identifier + number_literal) ))))) ;) (if_statement "if (7 < (iVar8 - 1U & 0xff)) {\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);\n        (**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );\n        iVar8 = FUN_00026560(p_00->plug);\n        return iVar8;\n      }" if (parenthesized_expression "(7 < (iVar8 - 1U & 0xff))" ( (binary_expression "7 < (iVar8 - 1U & 0xff)" number_literal < (parenthesized_expression "(iVar8 - 1U & 0xff)" ( (binary_expression "iVar8 - 1U & 0xff" (binary_expression "iVar8 - 1U" identifier - number_literal) & number_literal) ))) )) (compound_statement "{\n        iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);\n        (**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );\n        iVar8 = FUN_00026560(p_00->plug);\n        return iVar8;\n      }" { (expression_statement "iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460);" (assignment_expression "iVar3 = (**(code **)(puVar10 + 0x9902c))(&uStack_460)" identifier = (call_expression "(**(code **)(puVar10 + 0x9902c))(&uStack_460)" (parenthesized_expression "(**(code **)(puVar10 + 0x9902c))" ( (pointer_expression "**(code **)(puVar10 + 0x9902c)" * (pointer_expression "*(code **)(puVar10 + 0x9902c)" * (cast_expression "(code **)(puVar10 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x9902c)" ( (binary_expression "puVar10 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "(&uStack_460)" ( (pointer_expression "&uStack_460" & identifier) )))) ;) (expression_statement "(**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  );" (call_expression "(**(code **)(puVar10 + 0x98f00))\n                  ((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  )" (parenthesized_expression "(**(code **)(puVar10 + 0x98f00))" ( (pointer_expression "**(code **)(puVar10 + 0x98f00)" * (pointer_expression "*(code **)(puVar10 + 0x98f00)" * (cast_expression "(code **)(puVar10 + 0x98f00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x98f00)" ( (binary_expression "puVar10 + 0x98f00" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_460 + iVar3,1,0xffffffff,*(int *)(puVar10 + 0x98560) + -0x5100,iVar8\n                  )" ( (binary_expression "(int)&uStack_460 + iVar3" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + identifier) , number_literal , number_literal , (binary_expression "*(int *)(puVar10 + 0x98560) + -0x5100" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar8 = FUN_00026560(p_00->plug);" (assignment_expression "iVar8 = FUN_00026560(p_00->plug)" identifier = (call_expression "FUN_00026560(p_00->plug)" identifier (argument_list "(p_00->plug)" ( (field_expression "p_00->plug" identifier -> field_identifier) )))) ;) (return_statement "return iVar8;" return identifier ;) })) comment comment (expression_statement "iVar8 = (*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))();" (assignment_expression "iVar8 = (*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))()" identifier = (call_expression "(*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))()" (parenthesized_expression "(*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)))" ( (pointer_expression "*(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8))" * (cast_expression "(code *)(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8))" ( (binary_expression "puVar10 +\n                        (int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)" identifier + (cast_expression "(int)("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "("Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8)" ( (binary_expression ""Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4) + 8" (binary_expression ""Server requested password change" +\n                             *(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4)" (string_literal ""Server requested password change"" " string_content ") + (pointer_expression "*(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x4e60 +\n                                     (iVar8 - 1U & 0xff) * 4" (binary_expression "*(int *)(puVar10 + 0x98560) + -0x4e60" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) + (binary_expression "(iVar8 - 1U & 0xff) * 4" (parenthesized_expression "(iVar8 - 1U & 0xff)" ( (binary_expression "iVar8 - 1U & 0xff" (binary_expression "iVar8 - 1U" identifier - number_literal) & number_literal) )) * number_literal)) ))))) + number_literal) )))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar8;" return identifier ;) })) (if_statement "if (cStack_465 == '\x03') {\n      iVar8 = bStack_464 + 6;\n    }\n    else if (cStack_465 == '\x04') {\n      iVar8 = 0x16;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }" if (parenthesized_expression "(cStack_465 == '\x03')" ( (binary_expression "cStack_465 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      iVar8 = bStack_464 + 6;\n    }" { (expression_statement "iVar8 = bStack_464 + 6;" (assignment_expression "iVar8 = bStack_464 + 6" identifier = (binary_expression "bStack_464 + 6" identifier + number_literal)) ;) }) (else_clause "else if (cStack_465 == '\x04') {\n      iVar8 = 0x16;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }" else (if_statement "if (cStack_465 == '\x04') {\n      iVar8 = 0x16;\n    }\n    else {\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }" if (parenthesized_expression "(cStack_465 == '\x04')" ( (binary_expression "cStack_465 == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      iVar8 = 0x16;\n    }" { (expression_statement "iVar8 = 0x16;" (assignment_expression "iVar8 = 0x16" identifier = number_literal) ;) }) (else_clause "else {\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }" else (compound_statement "{\n      in_a3 = (Conf *)0x0;\n      if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }\n      iVar8 = 10;\n    }" { (expression_statement "in_a3 = (Conf *)0x0;" (assignment_expression "in_a3 = (Conf *)0x0" identifier = (cast_expression "(Conf *)0x0" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (cStack_465 != '\x01') {\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }" if (parenthesized_expression "(cStack_465 != '\x01')" ( (binary_expression "cStack_465 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        (*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;\n        iVar8 = 1;\n        goto LAB_00025ff8;\n      }" { (expression_statement "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)\n        ;" (call_expression "(*(*p_00->plug)->closing)(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)" (parenthesized_expression "(*(*p_00->plug)->closing)" ( (pointer_expression "*(*p_00->plug)->closing" * (field_expression "(*p_00->plug)->closing" (parenthesized_expression "(*p_00->plug)" ( (pointer_expression "*p_00->plug" * (field_expression "p_00->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(p_00->plug,(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc),8000,0)" ( (field_expression "p_00->plug" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(puVar10 + 0x98560) + -0x50dc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x98560) + -0x50dc)" ( (binary_expression "*(int *)(puVar10 + 0x98560) + -0x50dc" (pointer_expression "*(int *)(puVar10 + 0x98560)" * (cast_expression "(int *)(puVar10 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x98560)" ( (binary_expression "puVar10 + 0x98560" identifier + number_literal) )))) + number_literal) ))) , number_literal , number_literal ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" identifier = number_literal) ;) }))))) (expression_statement "iVar3 = bufchain_size(pbVar7);" (assignment_expression "iVar3 = bufchain_size(pbVar7)" identifier = (call_expression "bufchain_size(pbVar7)" identifier (argument_list "(pbVar7)" ( identifier )))) ;) (if_statement "if (iVar8 <= iVar3) {\n      bufchain_consume(pbVar7,iVar8);\n      proxy_activate(p_00);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }" if (parenthesized_expression "(iVar8 <= iVar3)" ( (binary_expression "iVar8 <= iVar3" identifier <= identifier) )) (compound_statement "{\n      bufchain_consume(pbVar7,iVar8);\n      proxy_activate(p_00);\n      iVar8 = 1;\n      goto LAB_00025ff8;\n    }" { (expression_statement "bufchain_consume(pbVar7,iVar8);" (call_expression "bufchain_consume(pbVar7,iVar8)" identifier (argument_list "(pbVar7,iVar8)" ( identifier , identifier ))) ;) (expression_statement "proxy_activate(p_00);" (call_expression "proxy_activate(p_00)" identifier (argument_list "(p_00)" ( identifier ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) })) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar10 + 0x990e4)) {\n    return iVar8;\n  }" statement_identifier : (if_statement "if (iStack_25c == **(int **)(puVar10 + 0x990e4)) {\n    return iVar8;\n  }" if (parenthesized_expression "(iStack_25c == **(int **)(puVar10 + 0x990e4))" ( (binary_expression "iStack_25c == **(int **)(puVar10 + 0x990e4)" identifier == (pointer_expression "**(int **)(puVar10 + 0x990e4)" * (pointer_expression "*(int **)(puVar10 + 0x990e4)" * (cast_expression "(int **)(puVar10 + 0x990e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x990e4)" ( (binary_expression "puVar10 + 0x990e4" identifier + number_literal) )))))) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) }))) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x990bc);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x990bc)" identifier = (pointer_expression "*(code **)(puVar10 + 0x990bc)" * (cast_expression "(code **)(puVar10 + 0x990bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x990bc)" ( (binary_expression "puVar10 + 0x990bc" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iStack_25c;" (assignment_expression "iVar8 = iStack_25c" identifier = identifier) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = **(int **)(pcVar11 + 0x98638);" (assignment_expression "iVar3 = **(int **)(pcVar11 + 0x98638)" identifier = (pointer_expression "**(int **)(pcVar11 + 0x98638)" * (pointer_expression "*(int **)(pcVar11 + 0x98638)" * (cast_expression "(int **)(pcVar11 + 0x98638)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x98638)" ( (binary_expression "pcVar11 + 0x98638" identifier + number_literal) )))))) ;) (if_statement "if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }" { comment (expression_statement "conf_get_int(in_a3,0xc);" (call_expression "conf_get_int(in_a3,0xc)" identifier (argument_list "(in_a3,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "conf = in_a3;" (assignment_expression "conf = in_a3" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(pcVar11 + 0x97c88))();" (assignment_expression "iVar8 = (**(code **)(pcVar11 + 0x97c88))()" identifier = (call_expression "(**(code **)(pcVar11 + 0x97c88))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x97c88))" ( (pointer_expression "**(code **)(pcVar11 + 0x97c88)" * (pointer_expression "*(code **)(pcVar11 + 0x97c88)" * (cast_expression "(code **)(pcVar11 + 0x97c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x97c88)" ( (binary_expression "pcVar11 + 0x97c88" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(in_a3,0xc);\n  }" { comment (expression_statement "conf_get_int(in_a3,0xc);" (call_expression "conf_get_int(in_a3,0xc)" identifier (argument_list "(in_a3,0xc)" ( identifier , number_literal ))) ;) })) (if_statement "if (iVar3 != **(int **)(pcVar11 + 0x98638)) {\n    (**(code **)(pcVar11 + 0x98610))();\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(conf,0xd);\n  }" if (parenthesized_expression "(iVar3 != **(int **)(pcVar11 + 0x98638))" ( (binary_expression "iVar3 != **(int **)(pcVar11 + 0x98638)" identifier != (pointer_expression "**(int **)(pcVar11 + 0x98638)" * (pointer_expression "*(int **)(pcVar11 + 0x98638)" * (cast_expression "(int **)(pcVar11 + 0x98638)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x98638)" ( (binary_expression "pcVar11 + 0x98638" identifier + number_literal) )))))) )) (compound_statement "{\n    (**(code **)(pcVar11 + 0x98610))();\n                    /* WARNING: Subroutine does not return */\n    conf_get_int(conf,0xd);\n  }" { (expression_statement "(**(code **)(pcVar11 + 0x98610))();" (call_expression "(**(code **)(pcVar11 + 0x98610))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x98610))" ( (pointer_expression "**(code **)(pcVar11 + 0x98610)" * (pointer_expression "*(code **)(pcVar11 + 0x98610)" * (cast_expression "(code **)(pcVar11 + 0x98610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x98610)" ( (binary_expression "pcVar11 + 0x98610" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) comment (expression_statement "conf_get_int(conf,0xd);" (call_expression "conf_get_int(conf,0xd)" identifier (argument_list "(conf,0xd)" ( identifier , number_literal ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "char * proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)\n\n{\n  byte bVar1;\n  char cVar10;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int iVar14;\n  int iVar15;\n  char *unaff_s2;\n  uint uVar16;\n  char *unaff_s3;\n  char *unaff_s4;\n  int iVar17;\n  undefined4 unaff_s5;\n  int unaff_s6;\n  char *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_51c;\n  undefined4 uStack_518;\n  undefined1 auStack_4fc [64];\n  int iStack_4bc;\n  int iStack_4b8;\n  char *pcStack_4b4;\n  char *pcStack_4b0;\n  char *pcStack_4ac;\n  char *pcStack_4a8;\n  undefined4 uStack_4a4;\n  int iStack_4a0;\n  char *pcStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  undefined *puStack_258;\n  char *pcStack_254;\n  char *pcStack_250;\n  char *pcStack_24c;\n  char *pcStack_248;\n  undefined4 local_220;\n  char local_21c;\n  char local_21b;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;\n  if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }\n  iVar2 = local_1c;\n  puVar11 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar11 + 0x990e4);\n  puStack_258 = param_1;\n  pcStack_254 = pcVar13;\n  pcStack_250 = unaff_s2;\n  pcStack_24c = unaff_s3;\n  pcStack_248 = unaff_s4;\n  if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }\n  pcVar19 = *(code **)(puVar11 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar19)();\n  pcVar20 = pcVar19 + 0x9fa7c;\n  iStack_4bc = **(int **)(pcVar19 + 0x98638);\n  iVar14 = param_4;\n  iStack_4b8 = iVar2;\n  pcStack_4b4 = pcVar13;\n  pcStack_4ac = unaff_s3;\n  pcStack_4a8 = unaff_s4;\n  uStack_4a4 = unaff_s5;\n  iStack_4a0 = unaff_s6;\n  if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }\n  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);\n  pcVar13 = (char *)0xa;\n  iVar4 = conf_get_str(param_4,10);\n  iVar15 = 0;\n  while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }\n  pcVar5 = (char *)0x1;\nLAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x98610);\n  iVar2 = iStack_4bc;\n  (*pcVar19)();\n  iVar8 = conf_get_int(iVar14,0xd);\n  if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }\n  return pcVar13;\n}\n\n" (function_definition "char * proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)\n\n{\n  byte bVar1;\n  char cVar10;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int iVar14;\n  int iVar15;\n  char *unaff_s2;\n  uint uVar16;\n  char *unaff_s3;\n  char *unaff_s4;\n  int iVar17;\n  undefined4 unaff_s5;\n  int unaff_s6;\n  char *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_51c;\n  undefined4 uStack_518;\n  undefined1 auStack_4fc [64];\n  int iStack_4bc;\n  int iStack_4b8;\n  char *pcStack_4b4;\n  char *pcStack_4b0;\n  char *pcStack_4ac;\n  char *pcStack_4a8;\n  undefined4 uStack_4a4;\n  int iStack_4a0;\n  char *pcStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  undefined *puStack_258;\n  char *pcStack_254;\n  char *pcStack_250;\n  char *pcStack_24c;\n  char *pcStack_248;\n  undefined4 local_220;\n  char local_21c;\n  char local_21b;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;\n  if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }\n  iVar2 = local_1c;\n  puVar11 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar11 + 0x990e4);\n  puStack_258 = param_1;\n  pcStack_254 = pcVar13;\n  pcStack_250 = unaff_s2;\n  pcStack_24c = unaff_s3;\n  pcStack_248 = unaff_s4;\n  if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }\n  pcVar19 = *(code **)(puVar11 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar19)();\n  pcVar20 = pcVar19 + 0x9fa7c;\n  iStack_4bc = **(int **)(pcVar19 + 0x98638);\n  iVar14 = param_4;\n  iStack_4b8 = iVar2;\n  pcStack_4b4 = pcVar13;\n  pcStack_4ac = unaff_s3;\n  pcStack_4a8 = unaff_s4;\n  uStack_4a4 = unaff_s5;\n  iStack_4a0 = unaff_s6;\n  if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }\n  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);\n  pcVar13 = (char *)0xa;\n  iVar4 = conf_get_str(param_4,10);\n  iVar15 = 0;\n  while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }\n  pcVar5 = (char *)0x1;\nLAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x98610);\n  iVar2 = iStack_4bc;\n  (*pcVar19)();\n  iVar8 = conf_get_int(iVar14,0xd);\n  if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }\n  return pcVar13;\n}" primitive_type (pointer_declarator "* proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)" * (function_declarator "proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)" identifier (parameter_list "(undefined *param_1,char *param_2,char *param_3,int param_4)" ( (parameter_declaration "undefined *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) )))) (compound_statement "{\n  byte bVar1;\n  char cVar10;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int iVar14;\n  int iVar15;\n  char *unaff_s2;\n  uint uVar16;\n  char *unaff_s3;\n  char *unaff_s4;\n  int iVar17;\n  undefined4 unaff_s5;\n  int unaff_s6;\n  char *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_51c;\n  undefined4 uStack_518;\n  undefined1 auStack_4fc [64];\n  int iStack_4bc;\n  int iStack_4b8;\n  char *pcStack_4b4;\n  char *pcStack_4b0;\n  char *pcStack_4ac;\n  char *pcStack_4a8;\n  undefined4 uStack_4a4;\n  int iStack_4a0;\n  char *pcStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  undefined *puStack_258;\n  char *pcStack_254;\n  char *pcStack_250;\n  char *pcStack_24c;\n  char *pcStack_248;\n  undefined4 local_220;\n  char local_21c;\n  char local_21b;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;\n  if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }\n  iVar2 = local_1c;\n  puVar11 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar11 + 0x990e4);\n  puStack_258 = param_1;\n  pcStack_254 = pcVar13;\n  pcStack_250 = unaff_s2;\n  pcStack_24c = unaff_s3;\n  pcStack_248 = unaff_s4;\n  if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }\n  pcVar19 = *(code **)(puVar11 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar19)();\n  pcVar20 = pcVar19 + 0x9fa7c;\n  iStack_4bc = **(int **)(pcVar19 + 0x98638);\n  iVar14 = param_4;\n  iStack_4b8 = iVar2;\n  pcStack_4b4 = pcVar13;\n  pcStack_4ac = unaff_s3;\n  pcStack_4a8 = unaff_s4;\n  uStack_4a4 = unaff_s5;\n  iStack_4a0 = unaff_s6;\n  if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }\n  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);\n  pcVar13 = (char *)0xa;\n  iVar4 = conf_get_str(param_4,10);\n  iVar15 = 0;\n  while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }\n  pcVar5 = (char *)0x1;\nLAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x98610);\n  iVar2 = iStack_4bc;\n  (*pcVar19)();\n  iVar8 = conf_get_int(iVar14,0xd);\n  if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }\n  return pcVar13;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "char *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "char *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "char *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 unaff_s5;" type_identifier identifier ;) (declaration "int unaff_s6;" primitive_type identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int iStack_51c;" primitive_type identifier ;) (declaration "undefined4 uStack_518;" type_identifier identifier ;) (declaration "undefined1 auStack_4fc [64];" type_identifier (array_declarator "auStack_4fc [64]" identifier [ number_literal ]) ;) (declaration "int iStack_4bc;" primitive_type identifier ;) (declaration "int iStack_4b8;" primitive_type identifier ;) (declaration "char *pcStack_4b4;" primitive_type (pointer_declarator "*pcStack_4b4" * identifier) ;) (declaration "char *pcStack_4b0;" primitive_type (pointer_declarator "*pcStack_4b0" * identifier) ;) (declaration "char *pcStack_4ac;" primitive_type (pointer_declarator "*pcStack_4ac" * identifier) ;) (declaration "char *pcStack_4a8;" primitive_type (pointer_declarator "*pcStack_4a8" * identifier) ;) (declaration "undefined4 uStack_4a4;" type_identifier identifier ;) (declaration "int iStack_4a0;" primitive_type identifier ;) (declaration "char *pcStack_46c;" primitive_type (pointer_declarator "*pcStack_46c" * identifier) ;) (declaration "char cStack_468;" primitive_type identifier ;) (declaration "char cStack_467;" primitive_type identifier ;) (declaration "char cStack_465;" primitive_type identifier ;) (declaration "byte bStack_464;" type_identifier identifier ;) (declaration "char acStack_462 [2];" primitive_type (array_declarator "acStack_462 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_460;" type_identifier identifier ;) (declaration "undefined4 uStack_45c;" type_identifier identifier ;) (declaration "undefined4 uStack_458;" type_identifier identifier ;) (declaration "undefined2 uStack_454;" type_identifier identifier ;) (declaration "int iStack_25c;" primitive_type identifier ;) (declaration "undefined *puStack_258;" type_identifier (pointer_declarator "*puStack_258" * identifier) ;) (declaration "char *pcStack_254;" primitive_type (pointer_declarator "*pcStack_254" * identifier) ;) (declaration "char *pcStack_250;" primitive_type (pointer_declarator "*pcStack_250" * identifier) ;) (declaration "char *pcStack_24c;" primitive_type (pointer_declarator "*pcStack_24c" * identifier) ;) (declaration "char *pcStack_248;" primitive_type (pointer_declarator "*pcStack_248" * identifier) ;) (declaration "undefined4 local_220;" type_identifier identifier ;) (declaration "char local_21c;" primitive_type identifier ;) (declaration "char local_21b;" primitive_type identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000bef2c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000bef2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000bef2c" * (cast_expression "(int *)PTR___stack_chk_guard_000bef2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x44) == -1)" ( (binary_expression "*(int *)(param_1 + 0x44) == -1" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));" (assignment_expression "iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10))" identifier = (call_expression "(*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10))" (parenthesized_expression "(*(code *)PTR_sk_addrtype_000be568)" ( (pointer_expression "*(code *)PTR_sk_addrtype_000be568" * (cast_expression "(code *)PTR_sk_addrtype_000be568" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x10))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }" { (expression_statement "*(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;" (assignment_expression "*(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438" (pointer_expression "*(undefined **)(param_1 + 4)" * (cast_expression "(undefined **)(param_1 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "PTR_s_1_0_000be3a8 + -0x5438" identifier + number_literal)) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }" else (compound_statement "{\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }" { (if_statement "if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }" { (expression_statement "(*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);" (call_expression "(*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220)" (parenthesized_expression "(*(code *)PTR_sk_addrcopy_000be56c)" ( (pointer_expression "*(code *)PTR_sk_addrcopy_000be56c" * (cast_expression "(code *)PTR_sk_addrcopy_000be56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x10),&local_220)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "&local_220" & identifier) ))) ;) (expression_statement "unaff_s4 = (char *)0x0;" (assignment_expression "unaff_s4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }" else (compound_statement "{\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }" { (if_statement "if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }" if (parenthesized_expression "(iVar2 != 3)" ( (binary_expression "iVar2 != 3" identifier != number_literal) )) (compound_statement "{\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }" { (expression_statement "puVar11 = PTR_s_1_0_000be3a8 + -0x5404;" (assignment_expression "puVar11 = PTR_s_1_0_000be3a8 + -0x5404" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x5404" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);" (call_expression "(*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28)" (parenthesized_expression "(*(code *)PTR___assert_fail_000bed58)" ( (pointer_expression "*(code *)PTR___assert_fail_000bed58" * (cast_expression "(code *)PTR___assert_fail_000bed58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28)" ( identifier , (binary_expression "PTR_s_1_0_000be3a8 + -0x54b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_1_0_000be3a8 + -0x4e28" identifier + number_literal) ))) ;) (expression_statement "pcVar13 = unaff_s2;" (assignment_expression "pcVar13 = unaff_s2" identifier = identifier) ;) (goto_statement "goto LAB_00025c88;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);" (call_expression "(*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200)" (parenthesized_expression "(*(code *)PTR_sk_getaddr_000be3b0)" ( (pointer_expression "*(code *)PTR_sk_getaddr_000be3b0" * (cast_expression "(code *)PTR_sk_getaddr_000be3b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "&local_21c" & identifier) , number_literal ))) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c)" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)(&local_21c)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_21c)" ( (pointer_expression "&local_21c" & identifier) )))) ;) (expression_statement "unaff_s4 = (char *)(iVar2 + 1);" (assignment_expression "unaff_s4 = (char *)(iVar2 + 1)" identifier = (cast_expression "(char *)(iVar2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "local_220 = 1;" (assignment_expression "local_220 = 1" identifier = number_literal) ;) }))) (expression_statement "unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);" (assignment_expression "unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x74),0x10)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "unaff_s3 = unaff_s4 + iVar2 + 9;" (assignment_expression "unaff_s3 = unaff_s4 + iVar2 + 9" identifier = (binary_expression "unaff_s4 + iVar2 + 9" (binary_expression "unaff_s4 + iVar2" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar13 = (char *)safemalloc(unaff_s3,1);" (assignment_expression "pcVar13 = (char *)safemalloc(unaff_s3,1)" identifier = (cast_expression "(char *)safemalloc(unaff_s3,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(unaff_s3,1)" identifier (argument_list "(unaff_s3,1)" ( identifier , number_literal ))))) ;) (expression_statement "(*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);" (call_expression "(*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2)" (parenthesized_expression "(*(code *)PTR_strcpy_000beed0)" ( (pointer_expression "*(code *)PTR_strcpy_000beed0" * (cast_expression "(code *)PTR_strcpy_000beed0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13 + 8,unaff_s2)" ( (binary_expression "pcVar13 + 8" identifier + number_literal) , identifier ))) ;) (expression_statement "*pcVar13 = '\x04';" (assignment_expression "*pcVar13 = '\x04'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\x04'" ' escape_sequence ')) ;) (expression_statement "pcVar13[1] = '\x01';" (assignment_expression "pcVar13[1] = '\x01'" (subscript_expression "pcVar13[1]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);" (assignment_expression "pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8)" (subscript_expression "pcVar13[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)*(undefined4 *)(param_1 + 0x14) >> 8)" ( (binary_expression "(uint)*(undefined4 *)(param_1 + 0x14) >> 8" (binary_expression "(uint)*(undefined4 *)(param_1 + 0x14)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);" (assignment_expression "pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14)" (subscript_expression "pcVar13[3]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(pcVar13 + 4) = local_220;" (assignment_expression "*(undefined4 *)(pcVar13 + 4) = local_220" (pointer_expression "*(undefined4 *)(pcVar13 + 4)" * (cast_expression "(undefined4 *)(pcVar13 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 4)" ( (binary_expression "pcVar13 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_strlen_000bee74)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" ( (pointer_expression "*(code *)PTR_strlen_000bee74" * (cast_expression "(code *)PTR_strlen_000bee74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);" (call_expression "(*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4)" (parenthesized_expression "(*(code *)PTR_memcpy_000bef30)" ( (pointer_expression "*(code *)PTR_memcpy_000bef30" * (cast_expression "(code *)PTR_memcpy_000bef30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13 + iVar2 + 9,&local_21c,unaff_s4)" ( (binary_expression "pcVar13 + iVar2 + 9" (binary_expression "pcVar13 + iVar2" identifier + identifier) + number_literal) , (pointer_expression "&local_21c" & identifier) , identifier ))) ;) (expression_statement "param_2 = pcVar13;" (assignment_expression "param_2 = pcVar13" identifier = identifier) ;) (expression_statement "param_3 = unaff_s3;" (assignment_expression "param_3 = unaff_s3" identifier = identifier) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(param_1 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 8)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 8)" ( (binary_expression "**(int **)(param_1 + 8) + 8" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "safefree(unaff_s2);" (call_expression "safefree(unaff_s2)" identifier (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "safefree(pcVar13);" (call_expression "safefree(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }" else (compound_statement "{\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }" { (expression_statement "puVar11 = param_1;" (assignment_expression "puVar11 = param_1" identifier = identifier) ;) (expression_statement "pcVar13 = param_2;" (assignment_expression "pcVar13 = param_2" identifier = identifier) ;) (if_statement "if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }" { (labeled_statement "LAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);" statement_identifier : (expression_statement "param_4 = *(int *)(param_1 + 0x58);" (assignment_expression "param_4 = *(int *)(param_1 + 0x58)" identifier = (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;)) (expression_statement "param_3 = *(char **)(param_1 + 0x54);" (assignment_expression "param_3 = *(char **)(param_1 + 0x54)" identifier = (pointer_expression "*(char **)(param_1 + 0x54)" * (cast_expression "(char **)(param_1 + 0x54)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "param_2 = *(char **)(param_1 + 0x50);" (assignment_expression "param_2 = *(char **)(param_1 + 0x50)" identifier = (pointer_expression "*(char **)(param_1 + 0x50)" * (cast_expression "(char **)(param_1 + 0x50)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(**(int **)(puVar11 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(puVar11 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(puVar11 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(puVar11 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(puVar11 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(puVar11 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(puVar11 + 0xc) + 4)" ( (binary_expression "**(int **)(puVar11 + 0xc) + 4" (pointer_expression "**(int **)(puVar11 + 0xc)" * (pointer_expression "*(int **)(puVar11 + 0xc)" * (cast_expression "(int **)(puVar11 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "unaff_s2 = pcVar13;" (assignment_expression "unaff_s2 = pcVar13" identifier = identifier) ;) }) (else_clause "else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }" else (compound_statement "{\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }" { (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" identifier = identifier) ;) (if_statement "if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" if (parenthesized_expression "(param_2 == (char *)0x1)" ( (binary_expression "param_2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar13 = (char *)0x0;\n      }" { (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" else (if_statement "if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" if (parenthesized_expression "(param_2 == (char *)0x3)" ( (binary_expression "param_2 == (char *)0x3" identifier == (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }" { (expression_statement "param_3 = *(char **)(param_1 + 0x70);" (assignment_expression "param_3 = *(char **)(param_1 + 0x70)" identifier = (pointer_expression "*(char **)(param_1 + 0x70)" * (cast_expression "(char **)(param_1 + 0x70)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "param_2 = *(char **)(param_1 + 0x6c);" (assignment_expression "param_2 = *(char **)(param_1 + 0x6c)" identifier = (pointer_expression "*(char **)(param_1 + 0x6c)" * (cast_expression "(char **)(param_1 + 0x6c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();" (assignment_expression "pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))()" identifier = (cast_expression "(char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 0x10)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 0x10)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 0x10)" ( (binary_expression "**(int **)(param_1 + 0xc) + 0x10" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) (else_clause "else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" else (if_statement "if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" if (parenthesized_expression "((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1))" ( (binary_expression "(param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)" (parenthesized_expression "(param_2 == (char *)0x2)" ( (binary_expression "param_2 == (char *)0x2" identifier == (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)(param_1 + 0x44) == 1)" ( (binary_expression "*(int *)(param_1 + 0x44) == 1" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }" { (expression_statement "unaff_s2 = param_1 + 0x34;" (assignment_expression "unaff_s2 = param_1 + 0x34" identifier = (binary_expression "param_1 + 0x34" identifier + number_literal)) ;) (expression_statement "iVar2 = bufchain_size(unaff_s2);" (assignment_expression "iVar2 = bufchain_size(unaff_s2)" identifier = (call_expression "bufchain_size(unaff_s2)" identifier (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }" if (parenthesized_expression "(7 < iVar2)" ( (binary_expression "7 < iVar2" number_literal < identifier) )) (compound_statement "{\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }" { (expression_statement "param_3 = (char *)0x8;" (assignment_expression "param_3 = (char *)0x8" identifier = (cast_expression "(char *)0x8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bufchain_fetch(unaff_s2,&local_21c);" (call_expression "bufchain_fetch(unaff_s2,&local_21c)" identifier (argument_list "(unaff_s2,&local_21c)" ( identifier , (pointer_expression "&local_21c" & identifier) ))) ;) (if_statement "if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }" if (parenthesized_expression "(local_21c == '\0')" ( (binary_expression "local_21c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }" { (if_statement "if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" if (parenthesized_expression "(local_21b == 'Z')" ( (binary_expression "local_21b == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) (compound_statement "{\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }" { (expression_statement "param_2 = (char *)0x8;" (assignment_expression "param_2 = (char *)0x8" identifier = (cast_expression "(char *)0x8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bufchain_consume(unaff_s2);" (call_expression "bufchain_consume(unaff_s2)" identifier (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "proxy_activate(param_1);" (call_expression "proxy_activate(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) }) (else_clause "else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" else (if_statement "if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" if (parenthesized_expression "(local_21b == '\\')" ( (binary_expression "local_21b == '\\'" identifier == (char_literal "'\\'" ' escape_sequence ')) )) (compound_statement "{\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x53a4;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x53a4" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x53a4" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" else (compound_statement "{\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" if (parenthesized_expression "(local_21b == ']')" ( (binary_expression "local_21b == ']'" identifier == (char_literal "']'" ' character ')) )) (compound_statement "{\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x5370;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x5370" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x5370" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" else (compound_statement "{\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x5338;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x5338" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x5338" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) }))))) }) (else_clause "else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }" else (compound_statement "{\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x53ec;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x53ec" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x53ec" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) })) }) (else_clause "else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" else (compound_statement "{\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f41;" (assignment_expression "param_3 = (char *)0x1f41" identifier = (cast_expression "(char *)0x1f41" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x545c;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x545c" identifier = (binary_expression "PTR_s_1_0_000be3a8 + -0x545c" identifier + number_literal)) ;) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" ( (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" * (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))))) }))) }))) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }" if (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_000bef2c)" ( (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_000bef2c" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000bef2c" * (cast_expression "(int *)PTR___stack_chk_guard_000bef2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar13;\n  }" { (return_statement "return pcVar13;" return identifier ;) })) (expression_statement "iVar2 = local_1c;" (assignment_expression "iVar2 = local_1c" identifier = identifier) ;) (expression_statement "puVar11 = PTR___stack_chk_fail_000bef04;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000bef04" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000bef04)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bef04)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bef04)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000bef04" * (cast_expression "(code *)PTR___stack_chk_fail_000bef04" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_25c = **(int **)(puVar11 + 0x990e4);" (assignment_expression "iStack_25c = **(int **)(puVar11 + 0x990e4)" identifier = (pointer_expression "**(int **)(puVar11 + 0x990e4)" * (pointer_expression "*(int **)(puVar11 + 0x990e4)" * (cast_expression "(int **)(puVar11 + 0x990e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x990e4)" ( (binary_expression "puVar11 + 0x990e4" identifier + number_literal) )))))) ;) (expression_statement "puStack_258 = param_1;" (assignment_expression "puStack_258 = param_1" identifier = identifier) ;) (expression_statement "pcStack_254 = pcVar13;" (assignment_expression "pcStack_254 = pcVar13" identifier = identifier) ;) (expression_statement "pcStack_250 = unaff_s2;" (assignment_expression "pcStack_250 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_24c = unaff_s3;" (assignment_expression "pcStack_24c = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_248 = unaff_s4;" (assignment_expression "pcStack_248 = unaff_s4" identifier = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x44) == -1)" ( (binary_expression "*(int *)(iVar2 + 0x44) == -1" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }" { (expression_statement "uStack_460 = CONCAT13(5,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(5,uStack_460._1_3_)" identifier = (call_expression "CONCAT13(5,uStack_460._1_3_)" identifier (argument_list "(5,uStack_460._1_3_)" ( number_literal , (field_expression "uStack_460._1_3_" identifier . field_identifier) )))) ;) (expression_statement "pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);" (assignment_expression "pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" identifier (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x10)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" * (cast_expression "(undefined4 *)(iVar2 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x74)" ( (binary_expression "iVar2 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);" (assignment_expression "pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" identifier (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x11)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" * (cast_expression "(undefined4 *)(iVar2 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x74)" ( (binary_expression "iVar2 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }" if (parenthesized_expression "((*pcVar13 == '\0') && (*pcVar12 == '\0'))" ( (binary_expression "(*pcVar13 == '\0') && (*pcVar12 == '\0')" (parenthesized_expression "(*pcVar13 == '\0')" ( (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }" { (expression_statement "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(1,uStack_460._2_2_)" identifier (argument_list "(1,uStack_460._2_2_)" ( number_literal , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;" (assignment_expression "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" identifier = (binary_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (call_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_)" identifier (argument_list "(uStack_460._0_2_,uStack_460._2_2_)" ( (field_expression "uStack_460._0_2_" identifier . field_identifier) , (field_expression "uStack_460._2_2_" identifier . field_identifier) ))) & number_literal)) ;) (expression_statement "pcStack_46c = (char *)0x3;" (assignment_expression "pcStack_46c = (char *)0x3" identifier = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }" else (compound_statement "{\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }" { (expression_statement "uStack_460._2_2_ = (ushort)(byte)uStack_460;" (assignment_expression "uStack_460._2_2_ = (ushort)(byte)uStack_460" (field_expression "uStack_460._2_2_" identifier . field_identifier) = (cast_expression "(ushort)(byte)uStack_460" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)uStack_460" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "pcStack_46c = (char *)0x3;" (assignment_expression "pcStack_46c = (char *)0x3" identifier = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);" (call_expression "proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c)" identifier (argument_list "(&uStack_460,&pcStack_46c)" ( (pointer_expression "&uStack_460" & identifier) , (pointer_expression "&pcStack_46c" & identifier) ))) ;) (expression_statement "*(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';" (assignment_expression "*(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02'" (pointer_expression "*(char *)((int)&uStack_460 + (int)pcStack_46c)" * (cast_expression "(char *)((int)&uStack_460 + (int)pcStack_46c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_460 + (int)pcStack_46c)" ( (binary_expression "(int)&uStack_460 + (int)pcStack_46c" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + (cast_expression "(int)pcStack_46c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_)" identifier (argument_list "((char)pcStack_46c + -1,uStack_460._2_2_)" ( (binary_expression "(char)pcStack_46c + -1" (cast_expression "(char)pcStack_46c" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "pcStack_46c = pcStack_46c + 1;" (assignment_expression "pcStack_46c = pcStack_46c + 1" identifier = (binary_expression "pcStack_46c + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar12 = (char *)&uStack_460;" (assignment_expression "pcVar12 = (char *)&uStack_460" identifier = (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier))) ;) (expression_statement "param_3 = pcStack_46c;" (assignment_expression "param_3 = pcStack_46c" identifier = identifier) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 8) + 8)" * (cast_expression "(code **)(**(int **)(iVar2 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 8) + 8)" ( (binary_expression "**(int **)(iVar2 + 8) + 8" (pointer_expression "**(int **)(iVar2 + 8)" * (pointer_expression "*(int **)(iVar2 + 8)" * (cast_expression "(int **)(iVar2 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 1;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 1" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_4b0 = unaff_s2;" (assignment_expression "pcStack_4b0 = unaff_s2" identifier = identifier) ;) }) (else_clause "else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }" else (compound_statement "{\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }" { (expression_statement "pcStack_4b0 = param_2;" (assignment_expression "pcStack_4b0 = param_2" identifier = identifier) ;) (if_statement "if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }" { (expression_statement "param_4 = *(int *)(iVar2 + 0x58);" (assignment_expression "param_4 = *(int *)(iVar2 + 0x58)" identifier = (pointer_expression "*(int *)(iVar2 + 0x58)" * (cast_expression "(int *)(iVar2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x58)" ( (binary_expression "iVar2 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "param_3 = *(char **)(iVar2 + 0x54);" (assignment_expression "param_3 = *(char **)(iVar2 + 0x54)" identifier = (pointer_expression "*(char **)(iVar2 + 0x54)" * (cast_expression "(char **)(iVar2 + 0x54)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x54)" ( (binary_expression "iVar2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = *(char **)(iVar2 + 0x50);" (assignment_expression "pcVar12 = *(char **)(iVar2 + 0x50)" identifier = (pointer_expression "*(char **)(iVar2 + 0x50)" * (cast_expression "(char **)(iVar2 + 0x50)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x50)" ( (binary_expression "iVar2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" else (if_statement "if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" if (parenthesized_expression "(param_2 == (char *)0x1)" ( (binary_expression "param_2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }" { (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) }) (else_clause "else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" else (if_statement "if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" if (parenthesized_expression "(param_2 == (char *)0x3)" ( (binary_expression "param_2 == (char *)0x3" identifier == (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }" { (expression_statement "param_3 = *(char **)(iVar2 + 0x70);" (assignment_expression "param_3 = *(char **)(iVar2 + 0x70)" identifier = (pointer_expression "*(char **)(iVar2 + 0x70)" * (cast_expression "(char **)(iVar2 + 0x70)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x70)" ( (binary_expression "iVar2 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = *(char **)(iVar2 + 0x6c);" (assignment_expression "pcVar12 = *(char **)(iVar2 + 0x6c)" identifier = (pointer_expression "*(char **)(iVar2 + 0x6c)" * (cast_expression "(char **)(iVar2 + 0x6c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x6c)" ( (binary_expression "iVar2 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();" (assignment_expression "pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))()" identifier = (cast_expression "(char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 0x10)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 0x10)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 0x10)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 0x10" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) (else_clause "else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" else (compound_statement "{\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" { (expression_statement "pcVar5 = param_2;" (assignment_expression "pcVar5 = param_2" identifier = identifier) ;) (if_statement "if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }" if (parenthesized_expression "(param_2 == (char *)0x2)" ( (binary_expression "param_2 == (char *)0x2" identifier == (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }" { (expression_statement "pcVar5 = (char *)(iVar2 + 0x34);" (assignment_expression "pcVar5 = (char *)(iVar2 + 0x34)" identifier = (cast_expression "(char *)(iVar2 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) )))) ;) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" identifier = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar2 + 0x44) == 1)" ( (binary_expression "*(int *)(iVar2 + 0x44) == 1" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }" { (expression_statement "iVar8 = bufchain_size(pcVar5);" (assignment_expression "iVar8 = bufchain_size(pcVar5)" identifier = (call_expression "bufchain_size(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "param_3 = (char *)0x2;" (assignment_expression "param_3 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) (if_statement "if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }" if (parenthesized_expression "(1 < iVar8)" ( (binary_expression "1 < iVar8" number_literal < identifier) )) (compound_statement "{\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }" { (expression_statement "bufchain_fetch(pcVar5,&uStack_460);" (call_expression "bufchain_fetch(pcVar5,&uStack_460)" identifier (argument_list "(pcVar5,&uStack_460)" ( identifier , (pointer_expression "&uStack_460" & identifier) ))) ;) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }" if (parenthesized_expression "(uStack_460._0_1_ == '\x05')" ( (binary_expression "uStack_460._0_1_ == '\x05'" (field_expression "uStack_460._0_1_" identifier . field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }" { (if_statement "if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" if (parenthesized_expression "(uStack_460._1_1_ == '\0')" ( (binary_expression "uStack_460._1_1_ == '\0'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }" { (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 2;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 2" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" else (if_statement "if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" if (parenthesized_expression "(uStack_460._1_1_ == '\x01')" ( (binary_expression "uStack_460._1_1_ == '\x01'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }" { (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 4;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 4" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" else (if_statement "if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" if (parenthesized_expression "(uStack_460._1_1_ == '\x02')" ( (binary_expression "uStack_460._1_1_ == '\x02'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }" { (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 5;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 5" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" else (compound_statement "{\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }" if (parenthesized_expression "(uStack_460._1_1_ != '\x03')" ( (binary_expression "uStack_460._1_1_ != '\x03'" (field_expression "uStack_460._1_1_" identifier . field_identifier) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x52cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x52cc)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x52cc" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 6;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 6" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) }))))))) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_2 = (char *)0x2;" (assignment_expression "param_2 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bufchain_consume(pcVar5);" (call_expression "bufchain_consume(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar8 = *(int *)(iVar2 + 0x44)" identifier = (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00026064;" goto statement_identifier ;) })) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5304)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5304)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5304" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }" else (compound_statement "{\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }" { (expression_statement "iVar8 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar8 = *(int *)(iVar2 + 0x44)" identifier = (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" statement_identifier : (if_statement "if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" if (parenthesized_expression "(iVar8 == 7)" ( (binary_expression "iVar8 == 7" identifier == number_literal) )) (compound_statement "{\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }" { (expression_statement "iVar14 = iVar2 + 0x34;" (assignment_expression "iVar14 = iVar2 + 0x34" identifier = (binary_expression "iVar2 + 0x34" identifier + number_literal)) ;) (expression_statement "iVar8 = bufchain_size(iVar14);" (assignment_expression "iVar8 = bufchain_size(iVar14)" identifier = (call_expression "bufchain_size(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "param_3 = (char *)0x2;" (assignment_expression "param_3 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }" if (parenthesized_expression "(1 < iVar8)" ( (binary_expression "1 < iVar8" number_literal < identifier) )) (compound_statement "{\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }" { (expression_statement "bufchain_fetch(iVar14,&uStack_460);" (call_expression "bufchain_fetch(iVar14,&uStack_460)" identifier (argument_list "(iVar14,&uStack_460)" ( identifier , (pointer_expression "&uStack_460" & identifier) ))) ;) (if_statement "if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }" if (parenthesized_expression "(uStack_460._0_1_ == '\x01')" ( (binary_expression "uStack_460._0_1_ == '\x01'" (field_expression "uStack_460._0_1_" identifier . field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }" if (parenthesized_expression "(uStack_460._1_1_ == '\0')" ( (binary_expression "uStack_460._1_1_ == '\0'" (field_expression "uStack_460._1_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }" { (expression_statement "bufchain_consume(iVar14,2);" (call_expression "bufchain_consume(iVar14,2)" identifier (argument_list "(iVar14,2)" ( identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 2;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 2" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000262a8;" goto statement_identifier ;) })) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5244)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5244)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5244" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);" (assignment_expression "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5290)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5290)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5290" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) }) (else_clause "else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" else (if_statement "if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" if (parenthesized_expression "((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0))" ( (binary_expression "(iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)" (parenthesized_expression "(iVar8 != 8)" ( (binary_expression "iVar8 != 8" identifier != number_literal) )) || (parenthesized_expression "(pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)" ( (comma_expression "pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0" (assignment_expression "pcVar13 = (char *)proxy_socks5_handlechap(iVar2)" identifier = (cast_expression "(char *)proxy_socks5_handlechap(iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "proxy_socks5_handlechap(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))))) , (comma_expression "pcVar12 = param_2,\n                  pcVar13 == (char *)0x0" (assignment_expression "pcVar12 = param_2" identifier = identifier) , (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" { (expression_statement "iVar8 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar8 = *(int *)(iVar2 + 0x44)" identifier = (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }" { (labeled_statement "LAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));" statement_identifier : (expression_statement "iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));" (assignment_expression "iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10))" identifier = (call_expression "(**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10))" (parenthesized_expression "(**(code **)(puVar11 + 0x98720))" ( (pointer_expression "**(code **)(puVar11 + 0x98720)" * (pointer_expression "*(code **)(puVar11 + 0x98720)" * (cast_expression "(code **)(puVar11 + 0x98720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98720)" ( (binary_expression "puVar11 + 0x98720" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar2 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) )))) ;)) (if_statement "if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }" { (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,1);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,1)" identifier = (call_expression "CONCAT31(uStack_460._0_3_,1)" identifier (argument_list "(uStack_460._0_3_,1)" ( (field_expression "uStack_460._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);" (call_expression "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" (parenthesized_expression "(**(code **)(puVar11 + 0x98724))" ( (pointer_expression "**(code **)(puVar11 + 0x98724)" * (pointer_expression "*(code **)(puVar11 + 0x98724)" * (cast_expression "(code **)(puVar11 + 0x98724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98724)" ( (binary_expression "puVar11 + 0x98724" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) , (pointer_expression "&uStack_45c" & identifier) ))) ;) (expression_statement "param_3 = (char *)0xa;" (assignment_expression "param_3 = (char *)0xa" identifier = (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" else (if_statement "if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }" { (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,4);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,4)" identifier = (call_expression "CONCAT31(uStack_460._0_3_,4)" identifier (argument_list "(uStack_460._0_3_,4)" ( (field_expression "uStack_460._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);" (call_expression "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" (parenthesized_expression "(**(code **)(puVar11 + 0x98724))" ( (pointer_expression "**(code **)(puVar11 + 0x98724)" * (pointer_expression "*(code **)(puVar11 + 0x98724)" * (cast_expression "(code **)(puVar11 + 0x98724)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98724)" ( (binary_expression "puVar11 + 0x98724" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) , (pointer_expression "&uStack_45c" & identifier) ))) ;) (expression_statement "param_3 = (char *)0x16;" (assignment_expression "param_3 = (char *)0x16" identifier = (cast_expression "(char *)0x16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" else (compound_statement "{\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" { (if_statement "if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }" if (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) (compound_statement "{\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }" { (expression_statement "param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;" (assignment_expression "param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40" identifier = (binary_expression "*(int *)(puVar11 + 0x98560) + -0x4e40" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);" (assignment_expression "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x54b4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x54b4)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x54b4" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);" (call_expression "(**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a)" (parenthesized_expression "(**(code **)(puVar11 + 0x98f10))" ( (pointer_expression "**(code **)(puVar11 + 0x98f10)" * (pointer_expression "*(code **)(puVar11 + 0x98f10)" * (cast_expression "(code **)(puVar11 + 0x98f10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98f10)" ( (binary_expression "puVar11 + 0x98f10" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5404" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) , identifier , number_literal ))) ;) (goto_statement "goto LAB_0002640c;" goto statement_identifier ;) })) (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,3);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,3)" identifier = (call_expression "CONCAT31(uStack_460._0_3_,3)" identifier (argument_list "(uStack_460._0_3_,3)" ( (field_expression "uStack_460._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);" (call_expression "(**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100)" (parenthesized_expression "(**(code **)(puVar11 + 0x98568))" ( (pointer_expression "**(code **)(puVar11 + 0x98568)" * (pointer_expression "*(code **)(puVar11 + 0x98568)" * (cast_expression "(code **)(puVar11 + 0x98568)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98568)" ( (binary_expression "puVar11 + 0x98568" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) , (binary_expression "(int)&uStack_45c + 1" (cast_expression "(int)&uStack_45c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_45c" & identifier)) + number_literal) , number_literal ))) ;) (expression_statement "cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);" (assignment_expression "cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1)" identifier = (call_expression "(**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" ( (pointer_expression "**(code **)(puVar11 + 0x9902c)" * (pointer_expression "*(code **)(puVar11 + 0x9902c)" * (cast_expression "(code **)(puVar11 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9902c)" ( (binary_expression "puVar11 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_45c + 1)" ( (binary_expression "(int)&uStack_45c + 1" (cast_expression "(int)&uStack_45c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_45c" & identifier)) + number_literal) )))) ;) (expression_statement "uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);" (assignment_expression "uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_)" identifier = (call_expression "CONCAT13(cVar10,uStack_45c._1_3_)" identifier (argument_list "(cVar10,uStack_45c._1_3_)" ( identifier , (field_expression "uStack_45c._1_3_" identifier . field_identifier) )))) ;) (expression_statement "param_3 = (char *)(cVar10 + 7);" (assignment_expression "param_3 = (char *)(cVar10 + 7)" identifier = (cast_expression "(char *)(cVar10 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cVar10 + 7)" ( (binary_expression "cVar10 + 7" identifier + number_literal) )))) ;) }))))) (expression_statement "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(1,uStack_460._2_2_)" identifier (argument_list "(1,uStack_460._2_2_)" ( number_literal , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT13(5,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(5,uStack_460._1_3_)" identifier = (call_expression "CONCAT13(5,uStack_460._1_3_)" identifier (argument_list "(5,uStack_460._1_3_)" ( number_literal , (field_expression "uStack_460._1_3_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;" (assignment_expression "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" identifier = (binary_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (call_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_)" identifier (argument_list "(uStack_460._0_2_,uStack_460._2_2_)" ( (field_expression "uStack_460._0_2_" identifier . field_identifier) , (field_expression "uStack_460._2_2_" identifier . field_identifier) ))) & number_literal)) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar2 + 0x14);" (assignment_expression "uVar9 = *(undefined4 *)(iVar2 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x14)" * (cast_expression "(undefined4 *)(iVar2 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);" (assignment_expression "acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8)" (subscript_expression "acStack_462[(int)param_3]" identifier [ (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(char)((uint)uVar9 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar9 >> 8)" ( (binary_expression "(uint)uVar9 >> 8" (cast_expression "(uint)uVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(acStack_462 + 1)[(int)param_3] = (char)uVar9;" (assignment_expression "(acStack_462 + 1)[(int)param_3] = (char)uVar9" (subscript_expression "(acStack_462 + 1)[(int)param_3]" (parenthesized_expression "(acStack_462 + 1)" ( (binary_expression "acStack_462 + 1" identifier + number_literal) )) [ (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(char)uVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pcVar12 = (char *)&uStack_460;" (assignment_expression "pcVar12 = (char *)&uStack_460" identifier = (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 8) + 8)" * (cast_expression "(code **)(**(int **)(iVar2 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 8) + 8)" ( (binary_expression "**(int **)(iVar2 + 8) + 8" (pointer_expression "**(int **)(iVar2 + 8)" * (pointer_expression "*(int **)(iVar2 + 8)" * (cast_expression "(int **)(iVar2 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 3" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" else (if_statement "if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "(iVar8 == 3)" ( (binary_expression "iVar8 == 3" identifier == number_literal) )) (compound_statement "{\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }" { (labeled_statement "LAB_0002640c:\n              iVar14 = iVar2 + 0x34;" statement_identifier : (expression_statement "iVar14 = iVar2 + 0x34;" (assignment_expression "iVar14 = iVar2 + 0x34" identifier = (binary_expression "iVar2 + 0x34" identifier + number_literal)) ;)) (expression_statement "iVar8 = bufchain_size(iVar14);" (assignment_expression "iVar8 = bufchain_size(iVar14)" identifier = (call_expression "bufchain_size(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "param_3 = &DAT_00000005;" (assignment_expression "param_3 = &DAT_00000005" identifier = (pointer_expression "&DAT_00000005" & identifier)) ;) (if_statement "if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }" if (parenthesized_expression "(iVar8 < 5)" ( (binary_expression "iVar8 < 5" identifier < number_literal) )) (compound_statement "{\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }" { (labeled_statement "LAB_00026430:\n                pcVar13 = (char *)0x1;" statement_identifier : (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" identifier = identifier) ;) }) (else_clause "else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }" else (compound_statement "{\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }" { (expression_statement "bufchain_fetch(iVar14,&cStack_468);" (call_expression "bufchain_fetch(iVar14,&cStack_468)" identifier (argument_list "(iVar14,&cStack_468)" ( identifier , (pointer_expression "&cStack_468" & identifier) ))) ;) (expression_statement "pcStack_4b0 = (char *)(int)cStack_467;" (assignment_expression "pcStack_4b0 = (char *)(int)cStack_467" identifier = (cast_expression "(char *)(int)cStack_467" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cStack_467" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }" if (parenthesized_expression "(cStack_468 == '\x05')" ( (binary_expression "cStack_468 == '\x05'" identifier == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }" { (if_statement "if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }" if (parenthesized_expression "(pcStack_4b0 == (char *)0x0)" ( (binary_expression "pcStack_4b0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }" { (if_statement "if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" if (parenthesized_expression "(cStack_465 == '\x03')" ( (binary_expression "cStack_465 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n                      param_2 = (char *)(bStack_464 + 6);\n                    }" { (expression_statement "param_2 = (char *)(bStack_464 + 6);" (assignment_expression "param_2 = (char *)(bStack_464 + 6)" identifier = (cast_expression "(char *)(bStack_464 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bStack_464 + 6)" ( (binary_expression "bStack_464 + 6" identifier + number_literal) )))) ;) }) (else_clause "else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" else (if_statement "if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" if (parenthesized_expression "(cStack_465 == '\x04')" ( (binary_expression "cStack_465 == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                      param_2 = (char *)0x16;\n                    }" { (expression_statement "param_2 = (char *)0x16;" (assignment_expression "param_2 = (char *)0x16" identifier = (cast_expression "(char *)0x16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" else (compound_statement "{\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (if_statement "if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }" if (parenthesized_expression "(cStack_465 != '\x01')" ( (binary_expression "cStack_465 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x50dc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x50dc)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x50dc" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00025ff8;" goto statement_identifier ;) })) (expression_statement "param_2 = (char *)0xa;" (assignment_expression "param_2 = (char *)0xa" identifier = (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))) (expression_statement "iVar8 = bufchain_size(iVar14);" (assignment_expression "iVar8 = bufchain_size(iVar14)" identifier = (call_expression "bufchain_size(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "pcVar5 = param_2;" (assignment_expression "pcVar5 = param_2" identifier = identifier) ;) (if_statement "if (iVar8 < (int)param_2) goto LAB_00026430;" if (parenthesized_expression "(iVar8 < (int)param_2)" ( (binary_expression "iVar8 < (int)param_2" identifier < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00026430;" goto statement_identifier ;)) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" identifier = identifier) ;) (expression_statement "bufchain_consume(iVar14);" (call_expression "bufchain_consume(iVar14)" identifier (argument_list "(iVar14)" ( identifier ))) ;) (expression_statement "proxy_activate(iVar2);" (call_expression "proxy_activate(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_4b0 = param_2;" (assignment_expression "pcStack_4b0 = param_2" identifier = identifier) ;) }) (else_clause "else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }" else (compound_statement "{\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }" { (expression_statement "iVar8 = *(int *)(puVar11 + 0x98560);" (assignment_expression "iVar8 = *(int *)(puVar11 + 0x98560)" identifier = (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) ))))) ;) (expression_statement "uStack_460 = *(uint *)(iVar8 + -0x51d0);" (assignment_expression "uStack_460 = *(uint *)(iVar8 + -0x51d0)" identifier = (pointer_expression "*(uint *)(iVar8 + -0x51d0)" * (cast_expression "(uint *)(iVar8 + -0x51d0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x51d0)" ( (binary_expression "iVar8 + -0x51d0" identifier + number_literal) ))))) ;) (expression_statement "uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);" (assignment_expression "uStack_45c = *(undefined4 *)(iVar8 + -0x51cc)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + -0x51cc)" * (cast_expression "(undefined4 *)(iVar8 + -0x51cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x51cc)" ( (binary_expression "iVar8 + -0x51cc" identifier + number_literal) ))))) ;) (expression_statement "uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);" (assignment_expression "uStack_458 = *(undefined4 *)(iVar8 + -0x51c8)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + -0x51c8)" * (cast_expression "(undefined4 *)(iVar8 + -0x51c8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x51c8)" ( (binary_expression "iVar8 + -0x51c8" identifier + number_literal) ))))) ;) (expression_statement "uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);" (assignment_expression "uStack_454 = *(undefined2 *)(iVar8 + -0x51c4)" identifier = (pointer_expression "*(undefined2 *)(iVar8 + -0x51c4)" * (cast_expression "(undefined2 *)(iVar8 + -0x51c4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x51c4)" ( (binary_expression "iVar8 + -0x51c4" identifier + number_literal) ))))) ;) (if_statement "if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }" if (parenthesized_expression "(((uint)(pcStack_4b0 + -1) & 0xff) < 8)" ( (binary_expression "((uint)(pcStack_4b0 + -1) & 0xff) < 8" (parenthesized_expression "((uint)(pcStack_4b0 + -1) & 0xff)" ( (binary_expression "(uint)(pcStack_4b0 + -1) & 0xff" (call_expression "(uint)(pcStack_4b0 + -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcStack_4b0 + -1)" ( (binary_expression "pcStack_4b0 + -1" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }" { (expression_statement "pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();" (assignment_expression "pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))()" identifier = (cast_expression "(char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))()" (parenthesized_expression "(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))" ( (pointer_expression "*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8))" * (cast_expression "(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8))" ( (binary_expression "puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)" identifier + (cast_expression "(int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)" ( (binary_expression ""Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8" (binary_expression ""Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" (string_literal ""Server requested password change"" " string_content ") + (pointer_expression "*(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" * (cast_expression "(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" ( (binary_expression "*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4" (binary_expression "*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) + (binary_expression "((uint)(pcStack_4b0 + -1) & 0xff) * 4" (parenthesized_expression "((uint)(pcStack_4b0 + -1) & 0xff)" ( (binary_expression "(uint)(pcStack_4b0 + -1) & 0xff" (call_expression "(uint)(pcStack_4b0 + -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcStack_4b0 + -1)" ( (binary_expression "pcStack_4b0 + -1" identifier + number_literal) ))) & number_literal) )) * number_literal)) ))))) + number_literal) )))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar13;" return identifier ;) })) (expression_statement "iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);" (assignment_expression "iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460)" identifier = (call_expression "(**(code **)(puVar11 + 0x9902c))(&uStack_460)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" ( (pointer_expression "**(code **)(puVar11 + 0x9902c)" * (pointer_expression "*(code **)(puVar11 + 0x9902c)" * (cast_expression "(code **)(puVar11 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9902c)" ( (binary_expression "puVar11 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "(&uStack_460)" ( (pointer_expression "&uStack_460" & identifier) )))) ;) (expression_statement "(**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);" (call_expression "(**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100)" (parenthesized_expression "(**(code **)(puVar11 + 0x98f00))" ( (pointer_expression "**(code **)(puVar11 + 0x98f00)" * (pointer_expression "*(code **)(puVar11 + 0x98f00)" * (cast_expression "(code **)(puVar11 + 0x98f00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x98f00)" ( (binary_expression "puVar11 + 0x98f00" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100)" ( (binary_expression "(int)&uStack_460 + iVar8" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + identifier) , number_literal , number_literal , (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5100" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)&uStack_460;" (assignment_expression "pcVar12 = (char *)&uStack_460" identifier = (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }" else (compound_statement "{\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -21000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -21000)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -21000" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) }) (else_clause "else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" else (if_statement "if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "(iVar8 == 4)" ( (binary_expression "iVar8 == 4" identifier == number_literal) )) (compound_statement "{\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }" { (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x509c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x509c)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x509c" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" else (if_statement "if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "(iVar8 == 5)" ( (binary_expression "iVar8 == 5" identifier == number_literal) )) (compound_statement "{\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }" { (expression_statement "unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);" (assignment_expression "unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" identifier (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x10)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" * (cast_expression "(undefined4 *)(iVar2 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x74)" ( (binary_expression "iVar2 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);" (assignment_expression "unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" identifier = (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" identifier (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x11)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" * (cast_expression "(undefined4 *)(iVar2 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x74)" ( (binary_expression "iVar2 + 0x74" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }" if (parenthesized_expression "((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0'))" ( (binary_expression "(*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')" (parenthesized_expression "(*unaff_s3 == '\0')" ( (binary_expression "*unaff_s3 == '\0'" (pointer_expression "*unaff_s3" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_4 = 0, *unaff_s4 == '\0')" ( (comma_expression "param_4 = 0, *unaff_s4 == '\0'" (assignment_expression "param_4 = 0" identifier = number_literal) , (binary_expression "*unaff_s4 == '\0'" (pointer_expression "*unaff_s4" * identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }" { (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" identifier = (cast_expression "(char *)0x1f40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5068)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5068)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5068" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }" else (compound_statement "{\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }" { (expression_statement "pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);" (assignment_expression "pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3)" identifier = (cast_expression "(char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar11 + 0x9902c))(unaff_s3)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" ( (pointer_expression "**(code **)(puVar11 + 0x9902c)" * (pointer_expression "*(code **)(puVar11 + 0x9902c)" * (cast_expression "(code **)(puVar11 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9902c)" ( (binary_expression "puVar11 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "(unaff_s3)" ( identifier ))))) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }" if (parenthesized_expression "(0 < (int)pcVar13)" ( (binary_expression "0 < (int)pcVar13" number_literal < (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  pcVar5 = pcVar13;\n                }" { (expression_statement "pcVar5 = pcVar13;" (assignment_expression "pcVar5 = pcVar13" identifier = identifier) ;) })) (if_statement "if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }" if (parenthesized_expression "(0xff < (int)pcVar5)" ( (binary_expression "0xff < (int)pcVar5" number_literal < (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  pcVar5 = (char *)0xff;\n                }" { (expression_statement "pcVar5 = (char *)0xff;" (assignment_expression "pcVar5 = (char *)0xff" identifier = (cast_expression "(char *)0xff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);" (assignment_expression "iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4)" identifier = (call_expression "(**(code **)(puVar11 + 0x9902c))(unaff_s4)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" ( (pointer_expression "**(code **)(puVar11 + 0x9902c)" * (pointer_expression "*(code **)(puVar11 + 0x9902c)" * (cast_expression "(code **)(puVar11 + 0x9902c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9902c)" ( (binary_expression "puVar11 + 0x9902c" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier )))) ;) (if_statement "if (iVar8 < 1) {\n                  iVar8 = 1;\n                }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n                  iVar8 = 1;\n                }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) })) (expression_statement "unaff_s6 = 0xff;" (assignment_expression "unaff_s6 = 0xff" identifier = number_literal) ;) (if_statement "if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }" if (parenthesized_expression "(iVar8 < 0x100)" ( (binary_expression "iVar8 < 0x100" identifier < number_literal) )) (compound_statement "{\n                  unaff_s6 = iVar8;\n                }" { (expression_statement "unaff_s6 = iVar8;" (assignment_expression "unaff_s6 = iVar8" identifier = identifier) ;) })) (expression_statement "uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" identifier . field_identifier) = (call_expression "CONCAT12((char)pcVar5,uStack_460._2_2_)" identifier (argument_list "((char)pcVar5,uStack_460._2_2_)" ( (cast_expression "(char)pcVar5" ( (type_descriptor "char" primitive_type) ) identifier) , (field_expression "uStack_460._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_460 = CONCAT13(1,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(1,uStack_460._1_3_)" identifier = (call_expression "CONCAT13(1,uStack_460._1_3_)" identifier (argument_list "(1,uStack_460._1_3_)" ( number_literal , (field_expression "uStack_460._1_3_" identifier . field_identifier) )))) ;) (expression_statement "param_4 = 0x1ff;" (assignment_expression "param_4 = 0x1ff" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);" (call_expression "(**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5)" (parenthesized_expression "(**(code **)(puVar11 + 0x9905c))" ( (pointer_expression "**(code **)(puVar11 + 0x9905c)" * (pointer_expression "*(code **)(puVar11 + 0x9905c)" * (cast_expression "(code **)(puVar11 + 0x9905c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x9905c)" ( (binary_expression "puVar11 + 0x9905c" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_460 + 2,unaff_s3,pcVar5)" ( (binary_expression "(int)&uStack_460 + 2" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + number_literal) , identifier , identifier ))) ;) (expression_statement "pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;" (assignment_expression "pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6" (subscript_expression "pcVar5[(int)&uStack_460 + 2]" identifier [ (binary_expression "(int)&uStack_460 + 2" (cast_expression "(int)&uStack_460" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_460" & identifier)) + number_literal) ]) = (cast_expression "(char)unaff_s6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "unaff_s3 = (char *)&uStack_460;" (assignment_expression "unaff_s3 = (char *)&uStack_460" identifier = (cast_expression "(char *)&uStack_460" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_460" & identifier))) ;) (expression_statement "(**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);" (call_expression "(**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6)" (parenthesized_expression "(**(code **)(puVar11 + 0x990e8))" ( (pointer_expression "**(code **)(puVar11 + 0x990e8)" * (pointer_expression "*(code **)(puVar11 + 0x990e8)" * (cast_expression "(code **)(puVar11 + 0x990e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x990e8)" ( (binary_expression "puVar11 + 0x990e8" identifier + number_literal) ))))) )) (argument_list "(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6)" ( (binary_expression "unaff_s3 + (int)(pcVar5 + 3)" identifier + (cast_expression "(int)(pcVar5 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar5 + 3)" ( (binary_expression "pcVar5 + 3" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "param_3 = pcVar5 + unaff_s6 + 3;" (assignment_expression "param_3 = pcVar5 + unaff_s6 + 3" identifier = (binary_expression "pcVar5 + unaff_s6 + 3" (binary_expression "pcVar5 + unaff_s6" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar12 = unaff_s3;" (assignment_expression "pcVar12 = unaff_s3" identifier = identifier) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 8) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 8) + 8)" * (cast_expression "(code **)(**(int **)(iVar2 + 8) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 8) + 8)" ( (binary_expression "**(int **)(iVar2 + 8) + 8" (pointer_expression "**(int **)(iVar2 + 8)" * (pointer_expression "*(int **)(iVar2 + 8)" * (cast_expression "(int **)(iVar2 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 7;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 7" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" identifier = identifier) ;) }))) }) (else_clause "else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" else (if_statement "if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" if (parenthesized_expression "((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0))" ( (binary_expression "(iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)" (parenthesized_expression "(iVar8 != 6)" ( (binary_expression "iVar8 != 6" identifier != number_literal) )) || (parenthesized_expression "(pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)" ( (comma_expression "pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0" (assignment_expression "pcVar13 = (char *)proxy_socks5_selectchap(iVar2)" identifier = (cast_expression "(char *)proxy_socks5_selectchap(iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "proxy_socks5_selectchap(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))))) , (comma_expression "pcVar12 = param_2,\n                    pcVar13 == (char *)0x0" (assignment_expression "pcVar12 = param_2" identifier = identifier) , (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_00025ec0;" goto statement_identifier ;)))))))))) }))))) }))) }) (else_clause "else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }" else (compound_statement "{\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }" { (labeled_statement "LAB_00025ec0:\n        param_4 = 0;" statement_identifier : (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;)) (expression_statement "param_3 = (char *)0x1f41;" (assignment_expression "param_3 = (char *)0x1f41" identifier = (cast_expression "(char *)0x1f41" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5014)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5014)" ( (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5014" (pointer_expression "*(int *)(puVar11 + 0x98560)" * (cast_expression "(int *)(puVar11 + 0x98560)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x98560)" ( (binary_expression "puVar11 + 0x98560" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" * (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" identifier = identifier) ;) }))) }))))))) }))) (labeled_statement "LAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }" statement_identifier : (if_statement "if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }" if (parenthesized_expression "(iStack_25c == **(int **)(puVar11 + 0x990e4))" ( (binary_expression "iStack_25c == **(int **)(puVar11 + 0x990e4)" identifier == (pointer_expression "**(int **)(puVar11 + 0x990e4)" * (pointer_expression "*(int **)(puVar11 + 0x990e4)" * (cast_expression "(int **)(puVar11 + 0x990e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x990e4)" ( (binary_expression "puVar11 + 0x990e4" identifier + number_literal) )))))) )) (compound_statement "{\n    return pcVar13;\n  }" { (return_statement "return pcVar13;" return identifier ;) }))) (expression_statement "pcVar19 = *(code **)(puVar11 + 0x990bc);" (assignment_expression "pcVar19 = *(code **)(puVar11 + 0x990bc)" identifier = (pointer_expression "*(code **)(puVar11 + 0x990bc)" * (cast_expression "(code **)(puVar11 + 0x990bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x990bc)" ( (binary_expression "puVar11 + 0x990bc" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iStack_25c;" (assignment_expression "iVar8 = iStack_25c" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar20 = pcVar19 + 0x9fa7c;" (assignment_expression "pcVar20 = pcVar19 + 0x9fa7c" identifier = (binary_expression "pcVar19 + 0x9fa7c" identifier + number_literal)) ;) (expression_statement "iStack_4bc = **(int **)(pcVar19 + 0x98638);" (assignment_expression "iStack_4bc = **(int **)(pcVar19 + 0x98638)" identifier = (pointer_expression "**(int **)(pcVar19 + 0x98638)" * (pointer_expression "*(int **)(pcVar19 + 0x98638)" * (cast_expression "(int **)(pcVar19 + 0x98638)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98638)" ( (binary_expression "pcVar19 + 0x98638" identifier + number_literal) )))))) ;) (expression_statement "iVar14 = param_4;" (assignment_expression "iVar14 = param_4" identifier = identifier) ;) (expression_statement "iStack_4b8 = iVar2;" (assignment_expression "iStack_4b8 = iVar2" identifier = identifier) ;) (expression_statement "pcStack_4b4 = pcVar13;" (assignment_expression "pcStack_4b4 = pcVar13" identifier = identifier) ;) (expression_statement "pcStack_4ac = unaff_s3;" (assignment_expression "pcStack_4ac = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_4a8 = unaff_s4;" (assignment_expression "pcStack_4a8 = unaff_s4" identifier = identifier) ;) (expression_statement "uStack_4a4 = unaff_s5;" (assignment_expression "uStack_4a4 = unaff_s5" identifier = identifier) ;) (expression_statement "iStack_4a0 = unaff_s6;" (assignment_expression "iStack_4a0 = unaff_s6" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }" { (expression_statement "pcVar13 = (char *)0xc;" (assignment_expression "pcVar13 = (char *)0xc" identifier = (cast_expression "(char *)0xc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar2 = conf_get_int(param_4,0xc);" (assignment_expression "iVar2 = conf_get_int(param_4,0xc)" identifier = (call_expression "conf_get_int(param_4,0xc)" identifier (argument_list "(param_4,0xc)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }" { (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12)" identifier = (call_expression "(**(code **)(pcVar19 + 0x97c8c))(pcVar12)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c8c))" ( (pointer_expression "**(code **)(pcVar19 + 0x97c8c)" * (pointer_expression "*(code **)(pcVar19 + 0x97c8c)" * (cast_expression "(code **)(pcVar19 + 0x97c8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97c8c)" ( (binary_expression "pcVar19 + 0x97c8c" identifier + number_literal) ))))) )) (argument_list "(pcVar12)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\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)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar2 = 0;\n    }" else (compound_statement "{\n      iVar2 = 0;\n    }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }" else (compound_statement "{\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }" { (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c88))();" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c88))()" identifier = (call_expression "(**(code **)(pcVar19 + 0x97c88))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c88))" ( (pointer_expression "**(code **)(pcVar19 + 0x97c88)" * (pointer_expression "*(code **)(pcVar19 + 0x97c88)" * (cast_expression "(code **)(pcVar19 + 0x97c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97c88)" ( (binary_expression "pcVar19 + 0x97c88" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar13 = (char *)0xc;" (assignment_expression "pcVar13 = (char *)0xc" identifier = (cast_expression "(char *)0xc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\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)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) (expression_statement "iVar2 = conf_get_int(param_4,0xc);" (assignment_expression "iVar2 = conf_get_int(param_4,0xc)" identifier = (call_expression "conf_get_int(param_4,0xc)" identifier (argument_list "(param_4,0xc)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }" { (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12)" identifier = (call_expression "(**(code **)(pcVar19 + 0x97c8c))(pcVar12)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c8c))" ( (pointer_expression "**(code **)(pcVar19 + 0x97c8c)" * (pointer_expression "*(code **)(pcVar19 + 0x97c8c)" * (cast_expression "(code **)(pcVar19 + 0x97c8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97c8c)" ( (binary_expression "pcVar19 + 0x97c8c" identifier + number_literal) ))))) )) (argument_list "(pcVar12)" ( identifier )))) ;) (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)) ;) (if_statement "if (iVar2 != 0) goto LAB_00026c80;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8)" identifier = (call_expression "(**(code **)(pcVar19 + 0x97c90))(iVar8)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c90))" ( (pointer_expression "**(code **)(pcVar19 + 0x97c90)" * (pointer_expression "*(code **)(pcVar19 + 0x97c90)" * (cast_expression "(code **)(pcVar19 + 0x97c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97c90)" ( (binary_expression "pcVar19 + 0x97c90" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "param_3 = &DAT_00000040;" (assignment_expression "param_3 = &DAT_00000040" identifier = (pointer_expression "&DAT_00000040" & identifier)) ;) (if_statement "if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\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)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) })) (expression_statement "param_3 = &DAT_00000040;" (assignment_expression "param_3 = &DAT_00000040" identifier = (pointer_expression "&DAT_00000040" & identifier)) ;) (expression_statement "(**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);" (call_expression "(**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97abc))" ( (pointer_expression "**(code **)(pcVar19 + 0x97abc)" * (pointer_expression "*(code **)(pcVar19 + 0x97abc)" * (cast_expression "(code **)(pcVar19 + 0x97abc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97abc)" ( (binary_expression "pcVar19 + 0x97abc" identifier + number_literal) ))))) )) (argument_list "(iVar8,auStack_4fc)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc)" identifier = (call_expression "(**(code **)(pcVar19 + 0x98580))(auStack_4fc)" (parenthesized_expression "(**(code **)(pcVar19 + 0x98580))" ( (pointer_expression "**(code **)(pcVar19 + 0x98580)" * (pointer_expression "*(code **)(pcVar19 + 0x98580)" * (cast_expression "(code **)(pcVar19 + 0x98580)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98580)" ( (binary_expression "pcVar19 + 0x98580" identifier + number_literal) ))))) )) (argument_list "(auStack_4fc)" ( identifier )))) ;) }))) (expression_statement "iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12)" identifier = (call_expression "(**(code **)(pcVar19 + 0x98580))(pcVar12)" (parenthesized_expression "(**(code **)(pcVar19 + 0x98580))" ( (pointer_expression "**(code **)(pcVar19 + 0x98580)" * (pointer_expression "*(code **)(pcVar19 + 0x98580)" * (cast_expression "(code **)(pcVar19 + 0x98580)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98580)" ( (binary_expression "pcVar19 + 0x98580" identifier + number_literal) ))))) )) (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "pcVar13 = (char *)0xa;" (assignment_expression "pcVar13 = (char *)0xa" identifier = (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = conf_get_str(param_4,10);" (assignment_expression "iVar4 = conf_get_str(param_4,10)" identifier = (call_expression "conf_get_str(param_4,10)" identifier (argument_list "(param_4,10)" ( identifier , number_literal )))) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }" { (expression_statement "uVar16 = (uint)*(char *)(iVar4 + iVar15);" (assignment_expression "uVar16 = (uint)*(char *)(iVar4 + iVar15)" identifier = (binary_expression "(uint)*(char *)(iVar4 + iVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)(iVar4 + iVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15)" ( (binary_expression "iVar4 + iVar15" identifier + identifier) ))))) ;) (if_statement "if (uVar16 == 0) break;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();" (assignment_expression "piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))()" identifier = (cast_expression "(int *)(**(code **)(pcVar19 + 0x98460))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x98460))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x98460))" ( (pointer_expression "**(code **)(pcVar19 + 0x98460)" * (pointer_expression "*(code **)(pcVar19 + 0x98460)" * (cast_expression "(code **)(pcVar19 + 0x98460)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98460)" ( (binary_expression "pcVar19 + 0x98460" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar7 = iVar15;" (assignment_expression "iVar7 = iVar15" identifier = identifier) ;) (while_statement "while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }" while (parenthesized_expression "((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c)))" ( (parenthesized_expression "(pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))" ( (comma_expression "pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c)" (assignment_expression "pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15)" identifier = (binary_expression "(char *)(iVar4 + iVar15) + (iVar7 - iVar15)" (cast_expression "(char *)(iVar4 + iVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15)" ( (binary_expression "iVar4 + iVar15" identifier + identifier) ))) + (parenthesized_expression "(iVar7 - iVar15)" ( (binary_expression "iVar7 - iVar15" identifier - identifier) )))) , (binary_expression "(*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c)" (binary_expression "(*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + (uVar16 & 0xff) * 2)" * (cast_expression "(ushort *)(iVar17 + (uVar16 & 0xff) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uVar16 & 0xff) * 2)" ( (binary_expression "iVar17 + (uVar16 & 0xff) * 2" identifier + (binary_expression "(uVar16 & 0xff) * 2" (parenthesized_expression "(uVar16 & 0xff)" ( (binary_expression "uVar16 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) != number_literal) || (parenthesized_expression "(uVar16 == 0x2c)" ( (binary_expression "uVar16 == 0x2c" identifier == number_literal) )))) )) )) (compound_statement "{\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*(char *)(iVar4 + iVar7);" (assignment_expression "uVar16 = (uint)*(char *)(iVar4 + iVar7)" identifier = (binary_expression "(uint)*(char *)(iVar4 + iVar7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)(iVar4 + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar7)" ( (binary_expression "iVar4 + iVar7" identifier + identifier) ))))) ;) (if_statement "if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }" { (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) })) (if_statement "if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }" { (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) (expression_statement "bVar1 = *(byte *)(iVar4 + iVar7);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar7)" identifier = (pointer_expression "*(byte *)(iVar4 + iVar7)" * (cast_expression "(byte *)(iVar4 + iVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar7)" ( (binary_expression "iVar4 + iVar7" identifier + identifier) ))))) ;) (expression_statement "iVar15 = iVar7;" (assignment_expression "iVar15 = iVar7" identifier = identifier) ;) (while_statement "while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }" while (parenthesized_expression "((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)))))" ( (parenthesized_expression "(bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))" ( (binary_expression "bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)))" (binary_expression "bVar1 != 0" identifier != number_literal) && (parenthesized_expression "((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)))" ( (parenthesized_expression "(((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))" ( (binary_expression "((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)" (parenthesized_expression "((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))" ( (binary_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2)" (binary_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800)" ( (binary_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800" (pointer_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar17 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uint)bVar1 * 2)" ( (binary_expression "iVar17 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((bVar1 - 0x2d & 0xff) < 2)" ( (binary_expression "(bVar1 - 0x2d & 0xff) < 2" (parenthesized_expression "(bVar1 - 0x2d & 0xff)" ( (binary_expression "bVar1 - 0x2d & 0xff" (binary_expression "bVar1 - 0x2d" identifier - number_literal) & number_literal) )) < number_literal) ))) )) || (parenthesized_expression "(bVar1 == 0x2a)" ( (binary_expression "bVar1 == 0x2a" identifier == number_literal) ))) )) ))) )) )) (compound_statement "{\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *(byte *)(iVar4 + iVar15);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar15)" identifier = (pointer_expression "*(byte *)(iVar4 + iVar15)" * (cast_expression "(byte *)(iVar4 + iVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15)" ( (binary_expression "iVar4 + iVar15" identifier + identifier) ))))) ;) })) (if_statement "if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }" if (parenthesized_expression "(uVar16 == 0x2a)" ( (binary_expression "uVar16 == 0x2a" identifier == number_literal) )) (compound_statement "{\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }" { (if_statement "if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" { (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" identifier = (cast_expression "(char *)((iVar15 - iVar7) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar15 - iVar7) + -1)" ( (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )) + number_literal) )))) ;) (expression_statement "pcVar13 = (char *)(iVar4 + iVar7 + 1);" (assignment_expression "pcVar13 = (char *)(iVar4 + iVar7 + 1)" identifier = (cast_expression "(char *)(iVar4 + iVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar7 + 1)" ( (binary_expression "iVar4 + iVar7 + 1" (binary_expression "iVar4 + iVar7" identifier + identifier) + number_literal) )))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" ( (binary_expression "auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7))" identifier + (parenthesized_expression "((iVar2 + 1) - (iVar15 - iVar7))" ( (binary_expression "(iVar2 + 1) - (iVar15 - iVar7)" (parenthesized_expression "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )) - (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) ))) ))) , identifier ))))) ;) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00026c80;" 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)) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) })) (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" identifier = (cast_expression "(char *)((iVar15 - iVar7) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar15 - iVar7) + -1)" ( (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )) + number_literal) )))) ;) (expression_statement "pcVar18 = (char *)(iVar4 + iVar7 + 1);" (assignment_expression "pcVar18 = (char *)(iVar4 + iVar7 + 1)" identifier = (cast_expression "(char *)(iVar4 + iVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar7 + 1)" ( (binary_expression "iVar4 + iVar7 + 1" (binary_expression "iVar4 + iVar7" identifier + identifier) + number_literal) )))) ;) (expression_statement "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);" (assignment_expression "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18)" identifier = (call_expression "(**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18)" ( (binary_expression "pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7))" identifier + (parenthesized_expression "((iVar3 + 1) - (iVar15 - iVar7))" ( (binary_expression "(iVar3 + 1) - (iVar15 - iVar7)" (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )) - (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) ))) ))) , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\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 "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) }) (else_clause "else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }" else (compound_statement "{\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }" { (expression_statement "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) ;) (if_statement "if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" if (parenthesized_expression "(*(char *)(iVar4 + iVar15 + -1) == '*')" ( (binary_expression "*(char *)(iVar4 + iVar15 + -1) == '*'" (pointer_expression "*(char *)(iVar4 + iVar15 + -1)" * (cast_expression "(char *)(iVar4 + iVar15 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15 + -1)" ( (binary_expression "iVar4 + iVar15 + -1" (binary_expression "iVar4 + iVar15" identifier + identifier) + number_literal) )))) == (char_literal "'*'" ' character ')) )) (compound_statement "{\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }" { (if_statement "if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }" { (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" identifier = (cast_expression "(char *)((iVar15 - iVar7) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar15 - iVar7) + -1)" ( (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )) + number_literal) )))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(auStack_4fc,pcVar18)" ( identifier , identifier ))))) ;) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00026c80;" 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)) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) })) (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" identifier = (cast_expression "(char *)((iVar15 - iVar7) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar15 - iVar7) + -1)" ( (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )) + number_literal) )))) ;) (expression_statement "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);" (assignment_expression "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" identifier = (call_expression "(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(pcVar12,pcVar18)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\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 "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) ;) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;) })) }) (else_clause "else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" else (compound_statement "{\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" { (expression_statement "param_3 = (char *)(iVar15 - iVar7);" (assignment_expression "param_3 = (char *)(iVar15 - iVar7)" identifier = (cast_expression "(char *)(iVar15 - iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )))) ;) (if_statement "if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;" if (parenthesized_expression "((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0))" ( (binary_expression "(iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)" ( (comma_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(auStack_4fc,pcVar18)" ( identifier , identifier ))))) , (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) (expression_statement "param_3 = (char *)(iVar15 - iVar7);" (assignment_expression "param_3 = (char *)(iVar15 - iVar7)" identifier = (cast_expression "(char *)(iVar15 - iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 - iVar7)" ( (binary_expression "iVar15 - iVar7" identifier - identifier) )))) ;) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" ( (pointer_expression "**(code **)(pcVar19 + 0x9852c)" * (pointer_expression "*(code **)(pcVar19 + 0x9852c)" * (cast_expression "(code **)(pcVar19 + 0x9852c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x9852c)" ( (binary_expression "pcVar19 + 0x9852c" identifier + number_literal) ))))) )) (argument_list "(pcVar12,pcVar18)" ( identifier , identifier ))))) ;) (expression_statement "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00026c80;" 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)) )) (goto_statement "goto LAB_00026c80;" goto statement_identifier ;)) }))) }))) (expression_statement "bVar1 = *(byte *)(iVar4 + iVar15);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar15)" identifier = (pointer_expression "*(byte *)(iVar4 + iVar15)" * (cast_expression "(byte *)(iVar4 + iVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15)" ( (binary_expression "iVar4 + iVar15" identifier + identifier) ))))) ;) (while_statement "while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }" while (parenthesized_expression "(((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c)))" ( (parenthesized_expression "((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))" ( (binary_expression "(pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c)" (parenthesized_expression "(pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))" ( (comma_expression "pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0)" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) , (binary_expression "bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0)" (binary_expression "bVar1 != 0" identifier != number_literal) && (parenthesized_expression "((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar17 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uint)bVar1 * 2)" ( (binary_expression "iVar17 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )))) )) && (parenthesized_expression "(bVar1 != 0x2c)" ( (binary_expression "bVar1 != 0x2c" identifier != number_literal) ))) )) )) (compound_statement "{\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }" { (expression_statement "bVar1 = *(byte *)(iVar4 + iVar15 + 1);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar15 + 1)" identifier = (pointer_expression "*(byte *)(iVar4 + iVar15 + 1)" * (cast_expression "(byte *)(iVar4 + iVar15 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar15 + 1)" ( (binary_expression "iVar4 + iVar15 + 1" (binary_expression "iVar4 + iVar15" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) })) })) (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }" statement_identifier : (if_statement "if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }" if (parenthesized_expression "(iStack_4bc == **(int **)(pcVar19 + 0x98638))" ( (binary_expression "iStack_4bc == **(int **)(pcVar19 + 0x98638)" identifier == (pointer_expression "**(int **)(pcVar19 + 0x98638)" * (pointer_expression "*(int **)(pcVar19 + 0x98638)" * (cast_expression "(int **)(pcVar19 + 0x98638)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98638)" ( (binary_expression "pcVar19 + 0x98638" identifier + number_literal) )))))) )) (compound_statement "{\n    return pcVar5;\n  }" { (return_statement "return pcVar5;" return identifier ;) }))) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x98610);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x98610)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x98610)" * (cast_expression "(code **)(pcVar19 + 0x98610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x98610)" ( (binary_expression "pcVar19 + 0x98610" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iStack_4bc;" (assignment_expression "iVar2 = iStack_4bc" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = conf_get_int(iVar14,0xd);" (assignment_expression "iVar8 = conf_get_int(iVar14,0xd)" identifier = (call_expression "conf_get_int(iVar14,0xd)" identifier (argument_list "(iVar14,0xd)" ( identifier , number_literal )))) ;) (if_statement "if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }" if (parenthesized_expression "(((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0))" ( (binary_expression "((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)" (parenthesized_expression "((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1))))))" ( (binary_expression "(iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))" ( (parenthesized_expression "(iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1))))" ( (comma_expression "iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))" (assignment_expression "iVar8 = conf_get_int(iVar14,0xb)" identifier = (call_expression "conf_get_int(iVar14,0xb)" identifier (argument_list "(iVar14,0xb)" ( identifier , number_literal )))) , (binary_expression "iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))" (binary_expression "iVar8 != 0" identifier != number_literal) && (parenthesized_expression "((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))" ( (parenthesized_expression "(iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1))" ( (comma_expression "iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)" (assignment_expression "iVar8 = conf_get_int(iVar14,0xb)" identifier = (call_expression "conf_get_int(iVar14,0xb)" identifier (argument_list "(iVar14,0xb)" ( identifier , number_literal )))) , (binary_expression "iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)" (binary_expression "iVar8 != 2" identifier != number_literal) || (parenthesized_expression "(iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)" ( (comma_expression "iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1" (assignment_expression "iVar8 = conf_get_int(iVar14,0xd)" identifier = (call_expression "conf_get_int(iVar14,0xd)" identifier (argument_list "(iVar14,0xd)" ( identifier , number_literal )))) , (binary_expression "iVar8 == 1" identifier == number_literal)) )))) )) )))) )) ))) )) || (parenthesized_expression "(iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)" ( (comma_expression "iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0" (assignment_expression "iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14)" identifier = (call_expression "proxy_for_destination(0,iVar2,pcVar13,iVar14)" identifier (argument_list "(0,iVar2,pcVar13,iVar14)" ( number_literal , identifier , identifier , identifier )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }" { (if_statement "if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" if (parenthesized_expression "(iStack_51c != 0)" ( (binary_expression "iStack_51c != 0" identifier != number_literal) )) (compound_statement "{\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" { (if_statement "if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" if (parenthesized_expression "(pcVar20 == (code *)0x1)" ( (binary_expression "pcVar20 == (code *)0x1" identifier == (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }" { (expression_statement "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0" identifier = (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4ff0" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" else (if_statement "if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" if (parenthesized_expression "(pcVar20 == (code *)0x2)" ( (binary_expression "pcVar20 == (code *)0x2" identifier == (cast_expression "(code *)0x2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }" { (expression_statement "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8" identifier = (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4fe8" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" else (compound_statement "{\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" { (expression_statement "iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884" identifier = (binary_expression "*(int *)(pcVar19 + 0x97640) + 0x884" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal)) ;) }))))) (expression_statement "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);" (assignment_expression "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518)" identifier = (call_expression "dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518)" identifier (argument_list "(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518)" ( (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4fb0" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier )))) ;) (expression_statement "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);" (call_expression "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97658))" ( (pointer_expression "**(code **)(pcVar19 + 0x97658)" * (pointer_expression "*(code **)(pcVar19 + 0x97658)" * (cast_expression "(code **)(pcVar19 + 0x97658)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97658)" ( (binary_expression "pcVar19 + 0x97658" identifier + number_literal) ))))) )) (argument_list "(iStack_51c,uVar9)" ( identifier , identifier ))) ;) (expression_statement "safefree(uVar9);" (call_expression "safefree(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (expression_statement "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);" (assignment_expression "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97820))" ( (pointer_expression "**(code **)(pcVar19 + 0x97820)" * (pointer_expression "*(code **)(pcVar19 + 0x97820)" * (cast_expression "(code **)(pcVar19 + 0x97820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97820)" ( (binary_expression "pcVar19 + 0x97820" identifier + number_literal) ))))) )) (argument_list "(iVar2,param_3,pcVar20)" ( identifier , identifier , identifier ))))) ;) }) (else_clause "else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }" else (compound_statement "{\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }" { (if_statement "if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" if (parenthesized_expression "(iStack_51c != 0)" ( (binary_expression "iStack_51c != 0" identifier != number_literal) )) (compound_statement "{\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" { (expression_statement "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);" (assignment_expression "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518)" identifier = (call_expression "dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518)" identifier (argument_list "(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518)" ( (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4fe0" (pointer_expression "*(int *)(pcVar19 + 0x97640)" * (cast_expression "(int *)(pcVar19 + 0x97640)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x97640)" ( (binary_expression "pcVar19 + 0x97640" identifier + number_literal) )))) + number_literal) , identifier , identifier )))) ;) (expression_statement "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);" (call_expression "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97658))" ( (pointer_expression "**(code **)(pcVar19 + 0x97658)" * (pointer_expression "*(code **)(pcVar19 + 0x97658)" * (cast_expression "(code **)(pcVar19 + 0x97658)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97658)" ( (binary_expression "pcVar19 + 0x97658" identifier + number_literal) ))))) )) (argument_list "(iStack_51c,uVar9)" ( identifier , identifier ))) ;) (expression_statement "safefree(uVar9);" (call_expression "safefree(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (expression_statement "uVar9 = dupstr(iVar2);" (assignment_expression "uVar9 = dupstr(iVar2)" identifier = (call_expression "dupstr(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*(undefined4 *)param_3 = uVar9;" (assignment_expression "*(undefined4 *)param_3 = uVar9" (pointer_expression "*(undefined4 *)param_3" * (cast_expression "(undefined4 *)param_3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);" (assignment_expression "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x97828))(iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x97828))(iVar2)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97828))" ( (pointer_expression "**(code **)(pcVar19 + 0x97828)" * (pointer_expression "*(code **)(pcVar19 + 0x97828)" * (cast_expression "(code **)(pcVar19 + 0x97828)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x97828)" ( (binary_expression "pcVar19 + 0x97828" identifier + number_literal) ))))) )) (argument_list "(iVar2)" ( identifier ))))) ;) }))) (return_statement "return pcVar13;" return identifier ;) })))
(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 TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (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) )))) = 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 = 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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))))) ;) }) (else_clause else (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) }))) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))))))) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence ')) )) (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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))))))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto 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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (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 *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (string_literal " string_content ") + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) * LIT)) ))))) + LIT) )))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) , LIT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence '))) ))) )) (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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (goto_statement goto statement_identifier ;)))))))))) }))))) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))))))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) )))) & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) < LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) ))) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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)) )) (goto_statement goto statement_identifier ;)) }))) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) & LIT) )) == LIT) )))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT == LIT)) )))) )) )))) )) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "char * proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)\n\n{\n  byte bVar1;\n  char cVar10;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int iVar14;\n  int iVar15;\n  char *unaff_s2;\n  uint uVar16;\n  char *unaff_s3;\n  char *unaff_s4;\n  int iVar17;\n  undefined4 unaff_s5;\n  int unaff_s6;\n  char *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_51c;\n  undefined4 uStack_518;\n  undefined1 auStack_4fc [64];\n  int iStack_4bc;\n  int iStack_4b8;\n  char *pcStack_4b4;\n  char *pcStack_4b0;\n  char *pcStack_4ac;\n  char *pcStack_4a8;\n  undefined4 uStack_4a4;\n  int iStack_4a0;\n  char *pcStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  undefined *puStack_258;\n  char *pcStack_254;\n  char *pcStack_250;\n  char *pcStack_24c;\n  char *pcStack_248;\n  undefined4 local_220;\n  char local_21c;\n  char local_21b;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;\n  if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }\n  iVar2 = local_1c;\n  puVar11 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar11 + 0x990e4);\n  puStack_258 = param_1;\n  pcStack_254 = pcVar13;\n  pcStack_250 = unaff_s2;\n  pcStack_24c = unaff_s3;\n  pcStack_248 = unaff_s4;\n  if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }\n  pcVar19 = *(code **)(puVar11 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar19)();\n  pcVar20 = pcVar19 + 0x9fa7c;\n  iStack_4bc = **(int **)(pcVar19 + 0x98638);\n  iVar14 = param_4;\n  iStack_4b8 = iVar2;\n  pcStack_4b4 = pcVar13;\n  pcStack_4ac = unaff_s3;\n  pcStack_4a8 = unaff_s4;\n  uStack_4a4 = unaff_s5;\n  iStack_4a0 = unaff_s6;\n  if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }\n  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);\n  pcVar13 = (char *)0xa;\n  iVar4 = conf_get_str(param_4,10);\n  iVar15 = 0;\n  while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }\n  pcVar5 = (char *)0x1;\nLAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x98610);\n  iVar2 = iStack_4bc;\n  (*pcVar19)();\n  iVar8 = conf_get_int(iVar14,0xd);\n  if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }\n  return pcVar13;\n}" (primitive_type "char") (pointer_declarator "* proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)" (* "*") (function_declarator "proxy_socks4_negotiate(undefined *param_1,char *param_2,char *param_3,int param_4)" (identifier "proxy_socks4_negotiate") (parameter_list "(undefined *param_1,char *param_2,char *param_3,int param_4)" (( "(") (parameter_declaration "undefined *param_1" (type_identifier "undefined") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")")))) (compound_statement "{\n  byte bVar1;\n  char cVar10;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int iVar14;\n  int iVar15;\n  char *unaff_s2;\n  uint uVar16;\n  char *unaff_s3;\n  char *unaff_s4;\n  int iVar17;\n  undefined4 unaff_s5;\n  int unaff_s6;\n  char *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_51c;\n  undefined4 uStack_518;\n  undefined1 auStack_4fc [64];\n  int iStack_4bc;\n  int iStack_4b8;\n  char *pcStack_4b4;\n  char *pcStack_4b0;\n  char *pcStack_4ac;\n  char *pcStack_4a8;\n  undefined4 uStack_4a4;\n  int iStack_4a0;\n  char *pcStack_46c;\n  char cStack_468;\n  char cStack_467;\n  char cStack_465;\n  byte bStack_464;\n  char acStack_462 [2];\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  undefined4 uStack_458;\n  undefined2 uStack_454;\n  int iStack_25c;\n  undefined *puStack_258;\n  char *pcStack_254;\n  char *pcStack_250;\n  char *pcStack_24c;\n  char *pcStack_248;\n  undefined4 local_220;\n  char local_21c;\n  char local_21b;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;\n  if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }\n  iVar2 = local_1c;\n  puVar11 = PTR___stack_chk_fail_000bef04;\n  (*(code *)PTR___stack_chk_fail_000bef04)();\n  iStack_25c = **(int **)(puVar11 + 0x990e4);\n  puStack_258 = param_1;\n  pcStack_254 = pcVar13;\n  pcStack_250 = unaff_s2;\n  pcStack_24c = unaff_s3;\n  pcStack_248 = unaff_s4;\n  if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }\nLAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }\n  pcVar19 = *(code **)(puVar11 + 0x990bc);\n  iVar8 = iStack_25c;\n  (*pcVar19)();\n  pcVar20 = pcVar19 + 0x9fa7c;\n  iStack_4bc = **(int **)(pcVar19 + 0x98638);\n  iVar14 = param_4;\n  iStack_4b8 = iVar2;\n  pcStack_4b4 = pcVar13;\n  pcStack_4ac = unaff_s3;\n  pcStack_4a8 = unaff_s4;\n  uStack_4a4 = unaff_s5;\n  iStack_4a0 = unaff_s6;\n  if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }\n  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);\n  pcVar13 = (char *)0xa;\n  iVar4 = conf_get_str(param_4,10);\n  iVar15 = 0;\n  while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }\n  pcVar5 = (char *)0x1;\nLAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x98610);\n  iVar2 = iStack_4bc;\n  (*pcVar19)();\n  iVar8 = conf_get_int(iVar14,0xd);\n  if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }\n  return pcVar13;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "char *unaff_s2;" (primitive_type "char") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "char *unaff_s3;" (primitive_type "char") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "char *unaff_s4;" (primitive_type "char") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined4 unaff_s5;" (type_identifier "undefined4") (identifier "unaff_s5") (; ";")) (declaration "int unaff_s6;" (primitive_type "int") (identifier "unaff_s6") (; ";")) (declaration "char *pcVar18;" (primitive_type "char") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "code *pcVar19;" (type_identifier "code") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "int iStack_51c;" (primitive_type "int") (identifier "iStack_51c") (; ";")) (declaration "undefined4 uStack_518;" (type_identifier "undefined4") (identifier "uStack_518") (; ";")) (declaration "undefined1 auStack_4fc [64];" (type_identifier "undefined1") (array_declarator "auStack_4fc [64]" (identifier "auStack_4fc") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "int iStack_4bc;" (primitive_type "int") (identifier "iStack_4bc") (; ";")) (declaration "int iStack_4b8;" (primitive_type "int") (identifier "iStack_4b8") (; ";")) (declaration "char *pcStack_4b4;" (primitive_type "char") (pointer_declarator "*pcStack_4b4" (* "*") (identifier "pcStack_4b4")) (; ";")) (declaration "char *pcStack_4b0;" (primitive_type "char") (pointer_declarator "*pcStack_4b0" (* "*") (identifier "pcStack_4b0")) (; ";")) (declaration "char *pcStack_4ac;" (primitive_type "char") (pointer_declarator "*pcStack_4ac" (* "*") (identifier "pcStack_4ac")) (; ";")) (declaration "char *pcStack_4a8;" (primitive_type "char") (pointer_declarator "*pcStack_4a8" (* "*") (identifier "pcStack_4a8")) (; ";")) (declaration "undefined4 uStack_4a4;" (type_identifier "undefined4") (identifier "uStack_4a4") (; ";")) (declaration "int iStack_4a0;" (primitive_type "int") (identifier "iStack_4a0") (; ";")) (declaration "char *pcStack_46c;" (primitive_type "char") (pointer_declarator "*pcStack_46c" (* "*") (identifier "pcStack_46c")) (; ";")) (declaration "char cStack_468;" (primitive_type "char") (identifier "cStack_468") (; ";")) (declaration "char cStack_467;" (primitive_type "char") (identifier "cStack_467") (; ";")) (declaration "char cStack_465;" (primitive_type "char") (identifier "cStack_465") (; ";")) (declaration "byte bStack_464;" (type_identifier "byte") (identifier "bStack_464") (; ";")) (declaration "char acStack_462 [2];" (primitive_type "char") (array_declarator "acStack_462 [2]" (identifier "acStack_462") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 uStack_460;" (type_identifier "undefined4") (identifier "uStack_460") (; ";")) (declaration "undefined4 uStack_45c;" (type_identifier "undefined4") (identifier "uStack_45c") (; ";")) (declaration "undefined4 uStack_458;" (type_identifier "undefined4") (identifier "uStack_458") (; ";")) (declaration "undefined2 uStack_454;" (type_identifier "undefined2") (identifier "uStack_454") (; ";")) (declaration "int iStack_25c;" (primitive_type "int") (identifier "iStack_25c") (; ";")) (declaration "undefined *puStack_258;" (type_identifier "undefined") (pointer_declarator "*puStack_258" (* "*") (identifier "puStack_258")) (; ";")) (declaration "char *pcStack_254;" (primitive_type "char") (pointer_declarator "*pcStack_254" (* "*") (identifier "pcStack_254")) (; ";")) (declaration "char *pcStack_250;" (primitive_type "char") (pointer_declarator "*pcStack_250" (* "*") (identifier "pcStack_250")) (; ";")) (declaration "char *pcStack_24c;" (primitive_type "char") (pointer_declarator "*pcStack_24c" (* "*") (identifier "pcStack_24c")) (; ";")) (declaration "char *pcStack_248;" (primitive_type "char") (pointer_declarator "*pcStack_248" (* "*") (identifier "pcStack_248")) (; ";")) (declaration "undefined4 local_220;" (type_identifier "undefined4") (identifier "local_220") (; ";")) (declaration "char local_21c;" (primitive_type "char") (identifier "local_21c") (; ";")) (declaration "char local_21b;" (primitive_type "char") (identifier "local_21b") (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000bef2c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000bef2c" (identifier "local_1c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000bef2c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000bef2c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000bef2c")))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x44) == -1) {\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }\n  else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x44) == -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x44) == -1" (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));\n    if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));" (assignment_expression "iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10))" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10))" (parenthesized_expression "(*(code *)PTR_sk_addrtype_000be568)" (( "(") (pointer_expression "*(code *)PTR_sk_addrtype_000be568" (* "*") (cast_expression "(code *)PTR_sk_addrtype_000be568" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sk_addrtype_000be568"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar2 == 2) {\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }\n    else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }" (if "if") (parenthesized_expression "(iVar2 == 2)" (( "(") (binary_expression "iVar2 == 2" (identifier "iVar2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;\n      pcVar13 = (char *)0x1;\n    }" ({ "{") (expression_statement "*(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;" (assignment_expression "*(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438" (pointer_expression "*(undefined **)(param_1 + 4)" (* "*") (cast_expression "(undefined **)(param_1 + 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "PTR_s_1_0_000be3a8 + -0x5438" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x5438"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }" (else "else") (compound_statement "{\n      if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }\n      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      unaff_s3 = unaff_s4 + iVar2 + 9;\n      pcVar13 = (char *)safemalloc(unaff_s3,1);\n      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);\n      *pcVar13 = '\x04';\n      pcVar13[1] = '\x01';\n      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);\n      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);\n      *(undefined4 *)(pcVar13 + 4) = local_220;\n      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);\n      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);\n      param_2 = pcVar13;\n      param_3 = unaff_s3;\n      (**(code **)(**(int **)(param_1 + 8) + 8))();\n      safefree(unaff_s2);\n      safefree(pcVar13);\n      *(undefined4 *)(param_1 + 0x44) = 1;\n      pcVar13 = (char *)0x0;\n    }" ({ "{") (if_statement "if (iVar2 == 1) {\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }\n      else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }" (if "if") (parenthesized_expression "(iVar2 == 1)" (( "(") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);\n        unaff_s4 = (char *)0x0;\n      }" ({ "{") (expression_statement "(*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);" (call_expression "(*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220)" (parenthesized_expression "(*(code *)PTR_sk_addrcopy_000be56c)" (( "(") (pointer_expression "*(code *)PTR_sk_addrcopy_000be56c" (* "*") (cast_expression "(code *)PTR_sk_addrcopy_000be56c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sk_addrcopy_000be56c"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x10),&local_220)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "&local_220" (& "&") (identifier "local_220")) () ")"))) (; ";")) (expression_statement "unaff_s4 = (char *)0x0;" (assignment_expression "unaff_s4 = (char *)0x0" (identifier "unaff_s4") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }" (else "else") (compound_statement "{\n        if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }\n        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);\n        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);\n        unaff_s4 = (char *)(iVar2 + 1);\n        local_220 = 1;\n      }" ({ "{") (if_statement "if (iVar2 != 3) {\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }" (if "if") (parenthesized_expression "(iVar2 != 3)" (( "(") (binary_expression "iVar2 != 3" (identifier "iVar2") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;\n          (*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);\n          pcVar13 = unaff_s2;\n          goto LAB_00025c88;\n        }" ({ "{") (expression_statement "puVar11 = PTR_s_1_0_000be3a8 + -0x5404;" (assignment_expression "puVar11 = PTR_s_1_0_000be3a8 + -0x5404" (identifier "puVar11") (= "=") (binary_expression "PTR_s_1_0_000be3a8 + -0x5404" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x5404"))) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);" (call_expression "(*(code *)PTR___assert_fail_000bed58)\n                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28)" (parenthesized_expression "(*(code *)PTR___assert_fail_000bed58)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000bed58" (* "*") (cast_expression "(code *)PTR___assert_fail_000bed58" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000bed58"))) () ")")) (argument_list "(puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28)" (( "(") (identifier "puVar11") (, ",") (binary_expression "PTR_s_1_0_000be3a8 + -0x54b4" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x54b4")) (, ",") (number_literal "0x32a") (, ",") (binary_expression "PTR_s_1_0_000be3a8 + -0x4e28" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x4e28")) () ")"))) (; ";")) (expression_statement "pcVar13 = unaff_s2;" (assignment_expression "pcVar13 = unaff_s2" (identifier "pcVar13") (= "=") (identifier "unaff_s2")) (; ";")) (goto_statement "goto LAB_00025c88;" (goto "goto") (statement_identifier "LAB_00025c88") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);" (call_expression "(*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200)" (parenthesized_expression "(*(code *)PTR_sk_getaddr_000be3b0)" (( "(") (pointer_expression "*(code *)PTR_sk_getaddr_000be3b0" (* "*") (cast_expression "(code *)PTR_sk_getaddr_000be3b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sk_getaddr_000be3b0"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "&local_21c" (& "&") (identifier "local_21c")) (, ",") (number_literal "0x200") () ")"))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_000bee74)(&local_21c)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" (( "(") (pointer_expression "*(code *)PTR_strlen_000bee74" (* "*") (cast_expression "(code *)PTR_strlen_000bee74" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000bee74"))) () ")")) (argument_list "(&local_21c)" (( "(") (pointer_expression "&local_21c" (& "&") (identifier "local_21c")) () ")")))) (; ";")) (expression_statement "unaff_s4 = (char *)(iVar2 + 1);" (assignment_expression "unaff_s4 = (char *)(iVar2 + 1)" (identifier "unaff_s4") (= "=") (cast_expression "(char *)(iVar2 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 1)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_220 = 1;" (assignment_expression "local_220 = 1" (identifier "local_220") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);" (assignment_expression "unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10)" (identifier "unaff_s2") (= "=") (cast_expression "(char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10)" (identifier "conf_get_str") (argument_list "(*(undefined4 *)(param_1 + 0x74),0x10)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x74)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_000bee74)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" (( "(") (pointer_expression "*(code *)PTR_strlen_000bee74" (* "*") (cast_expression "(code *)PTR_strlen_000bee74" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000bee74"))) () ")")) (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")")))) (; ";")) (expression_statement "unaff_s3 = unaff_s4 + iVar2 + 9;" (assignment_expression "unaff_s3 = unaff_s4 + iVar2 + 9" (identifier "unaff_s3") (= "=") (binary_expression "unaff_s4 + iVar2 + 9" (binary_expression "unaff_s4 + iVar2" (identifier "unaff_s4") (+ "+") (identifier "iVar2")) (+ "+") (number_literal "9"))) (; ";")) (expression_statement "pcVar13 = (char *)safemalloc(unaff_s3,1);" (assignment_expression "pcVar13 = (char *)safemalloc(unaff_s3,1)" (identifier "pcVar13") (= "=") (cast_expression "(char *)safemalloc(unaff_s3,1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "safemalloc(unaff_s3,1)" (identifier "safemalloc") (argument_list "(unaff_s3,1)" (( "(") (identifier "unaff_s3") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);" (call_expression "(*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2)" (parenthesized_expression "(*(code *)PTR_strcpy_000beed0)" (( "(") (pointer_expression "*(code *)PTR_strcpy_000beed0" (* "*") (cast_expression "(code *)PTR_strcpy_000beed0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcpy_000beed0"))) () ")")) (argument_list "(pcVar13 + 8,unaff_s2)" (( "(") (binary_expression "pcVar13 + 8" (identifier "pcVar13") (+ "+") (number_literal "8")) (, ",") (identifier "unaff_s2") () ")"))) (; ";")) (expression_statement "*pcVar13 = '\x04';" (assignment_expression "*pcVar13 = '\x04'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (= "=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) (; ";")) (expression_statement "pcVar13[1] = '\x01';" (assignment_expression "pcVar13[1] = '\x01'" (subscript_expression "pcVar13[1]" (identifier "pcVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);" (assignment_expression "pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8)" (subscript_expression "pcVar13[2]" (identifier "pcVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)*(undefined4 *)(param_1 + 0x14) >> 8)" (( "(") (binary_expression "(uint)*(undefined4 *)(param_1 + 0x14) >> 8" (binary_expression "(uint)*(undefined4 *)(param_1 + 0x14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);" (assignment_expression "pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14)" (subscript_expression "pcVar13[3]" (identifier "pcVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(char)*(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(pcVar13 + 4) = local_220;" (assignment_expression "*(undefined4 *)(pcVar13 + 4) = local_220" (pointer_expression "*(undefined4 *)(pcVar13 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar13 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 4)" (( "(") (binary_expression "pcVar13 + 4" (identifier "pcVar13") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_220")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_000bee74)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strlen_000bee74)" (( "(") (pointer_expression "*(code *)PTR_strlen_000bee74" (* "*") (cast_expression "(code *)PTR_strlen_000bee74" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000bee74"))) () ")")) (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);" (call_expression "(*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4)" (parenthesized_expression "(*(code *)PTR_memcpy_000bef30)" (( "(") (pointer_expression "*(code *)PTR_memcpy_000bef30" (* "*") (cast_expression "(code *)PTR_memcpy_000bef30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_000bef30"))) () ")")) (argument_list "(pcVar13 + iVar2 + 9,&local_21c,unaff_s4)" (( "(") (binary_expression "pcVar13 + iVar2 + 9" (binary_expression "pcVar13 + iVar2" (identifier "pcVar13") (+ "+") (identifier "iVar2")) (+ "+") (number_literal "9")) (, ",") (pointer_expression "&local_21c" (& "&") (identifier "local_21c")) (, ",") (identifier "unaff_s4") () ")"))) (; ";")) (expression_statement "param_2 = pcVar13;" (assignment_expression "param_2 = pcVar13" (identifier "param_2") (= "=") (identifier "pcVar13")) (; ";")) (expression_statement "param_3 = unaff_s3;" (assignment_expression "param_3 = unaff_s3" (identifier "param_3") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "(**(code **)(**(int **)(param_1 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(param_1 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 8))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 8)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 8)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 8) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 8) + 8)" (( "(") (binary_expression "**(int **)(param_1 + 8) + 8" (pointer_expression "**(int **)(param_1 + 8)" (* "*") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "safefree(unaff_s2);" (call_expression "safefree(unaff_s2)" (identifier "safefree") (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")"))) (; ";")) (expression_statement "safefree(pcVar13);" (call_expression "safefree(pcVar13)" (identifier "safefree") (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    puVar11 = param_1;\n    pcVar13 = param_2;\n    if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }\n  }" ({ "{") (expression_statement "puVar11 = param_1;" (assignment_expression "puVar11 = param_1" (identifier "puVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcVar13 = param_2;" (assignment_expression "pcVar13 = param_2" (identifier "pcVar13") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_2 == (char *)0x0) {\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }\n    else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);\n      param_3 = *(char **)(param_1 + 0x54);\n      param_2 = *(char **)(param_1 + 0x50);\n      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();\n      unaff_s2 = pcVar13;\n    }" ({ "{") (labeled_statement "LAB_00025c88:\n      param_4 = *(int *)(param_1 + 0x58);" (statement_identifier "LAB_00025c88") (: ":") (expression_statement "param_4 = *(int *)(param_1 + 0x58);" (assignment_expression "param_4 = *(int *)(param_1 + 0x58)" (identifier "param_4") (= "=") (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";"))) (expression_statement "param_3 = *(char **)(param_1 + 0x54);" (assignment_expression "param_3 = *(char **)(param_1 + 0x54)" (identifier "param_3") (= "=") (pointer_expression "*(char **)(param_1 + 0x54)" (* "*") (cast_expression "(char **)(param_1 + 0x54)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "param_2 = *(char **)(param_1 + 0x50);" (assignment_expression "param_2 = *(char **)(param_1 + 0x50)" (identifier "param_2") (= "=") (pointer_expression "*(char **)(param_1 + 0x50)" (* "*") (cast_expression "(char **)(param_1 + 0x50)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "(**(code **)(**(int **)(puVar11 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(puVar11 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(puVar11 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(puVar11 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(puVar11 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(puVar11 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(puVar11 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(puVar11 + 0xc) + 4" (pointer_expression "**(int **)(puVar11 + 0xc)" (* "*") (pointer_expression "*(int **)(puVar11 + 0xc)" (* "*") (cast_expression "(int **)(puVar11 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0xc)" (( "(") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "unaff_s2 = pcVar13;" (assignment_expression "unaff_s2 = pcVar13" (identifier "unaff_s2") (= "=") (identifier "pcVar13")) (; ";")) (} "}")) (else_clause "else {\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }" (else "else") (compound_statement "{\n      unaff_s2 = param_2;\n      if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }\n    }" ({ "{") (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" (identifier "unaff_s2") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_2 == (char *)0x1) {\n        pcVar13 = (char *)0x0;\n      }\n      else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" (if "if") (parenthesized_expression "(param_2 == (char *)0x1)" (( "(") (binary_expression "param_2 == (char *)0x1" (identifier "param_2") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        pcVar13 = (char *)0x0;\n      }" ({ "{") (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" (else "else") (if_statement "if (param_2 == (char *)0x3) {\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }\n      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" (if "if") (parenthesized_expression "(param_2 == (char *)0x3)" (( "(") (binary_expression "param_2 == (char *)0x3" (identifier "param_2") (== "==") (cast_expression "(char *)0x3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (compound_statement "{\n        param_3 = *(char **)(param_1 + 0x70);\n        param_2 = *(char **)(param_1 + 0x6c);\n        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();\n      }" ({ "{") (expression_statement "param_3 = *(char **)(param_1 + 0x70);" (assignment_expression "param_3 = *(char **)(param_1 + 0x70)" (identifier "param_3") (= "=") (pointer_expression "*(char **)(param_1 + 0x70)" (* "*") (cast_expression "(char **)(param_1 + 0x70)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "param_2 = *(char **)(param_1 + 0x6c);" (assignment_expression "param_2 = *(char **)(param_1 + 0x6c)" (identifier "param_2") (= "=") (pointer_expression "*(char **)(param_1 + 0x6c)" (* "*") (cast_expression "(char **)(param_1 + 0x6c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();" (assignment_expression "pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))()" (identifier "pcVar13") (= "=") (cast_expression "(char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 0x10))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 0x10)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 0x10)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 0x10)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 0x10" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" (else "else") (if_statement "if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }\n      else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" (if "if") (parenthesized_expression "((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1))" (( "(") (binary_expression "(param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)" (parenthesized_expression "(param_2 == (char *)0x2)" (( "(") (binary_expression "param_2 == (char *)0x2" (identifier "param_2") (== "==") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x44) == 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x44) == 1" (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n        unaff_s2 = param_1 + 0x34;\n        iVar2 = bufchain_size(unaff_s2);\n        pcVar13 = (char *)0x1;\n        if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }\n      }" ({ "{") (expression_statement "unaff_s2 = param_1 + 0x34;" (assignment_expression "unaff_s2 = param_1 + 0x34" (identifier "unaff_s2") (= "=") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34"))) (; ";")) (expression_statement "iVar2 = bufchain_size(unaff_s2);" (assignment_expression "iVar2 = bufchain_size(unaff_s2)" (identifier "iVar2") (= "=") (call_expression "bufchain_size(unaff_s2)" (identifier "bufchain_size") (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")")))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (7 < iVar2) {\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }" (if "if") (parenthesized_expression "(7 < iVar2)" (( "(") (binary_expression "7 < iVar2" (number_literal "7") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n          param_3 = (char *)0x8;\n          bufchain_fetch(unaff_s2,&local_21c);\n          if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }\n        }" ({ "{") (expression_statement "param_3 = (char *)0x8;" (assignment_expression "param_3 = (char *)0x8" (identifier "param_3") (= "=") (cast_expression "(char *)0x8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x8"))) (; ";")) (expression_statement "bufchain_fetch(unaff_s2,&local_21c);" (call_expression "bufchain_fetch(unaff_s2,&local_21c)" (identifier "bufchain_fetch") (argument_list "(unaff_s2,&local_21c)" (( "(") (identifier "unaff_s2") (, ",") (pointer_expression "&local_21c" (& "&") (identifier "local_21c")) () ")"))) (; ";")) (if_statement "if (local_21c == '\0') {\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }\n          else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }" (if "if") (parenthesized_expression "(local_21c == '\0')" (( "(") (binary_expression "local_21c == '\0'" (identifier "local_21c") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }\n          }" ({ "{") (if_statement "if (local_21b == 'Z') {\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }\n            else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" (if "if") (parenthesized_expression "(local_21b == 'Z')" (( "(") (binary_expression "local_21b == 'Z'" (identifier "local_21b") (== "==") (char_literal "'Z'" (' "'") (character "Z") (' "'"))) () ")")) (compound_statement "{\n              param_2 = (char *)0x8;\n              bufchain_consume(unaff_s2);\n              proxy_activate(param_1);\n            }" ({ "{") (expression_statement "param_2 = (char *)0x8;" (assignment_expression "param_2 = (char *)0x8" (identifier "param_2") (= "=") (cast_expression "(char *)0x8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x8"))) (; ";")) (expression_statement "bufchain_consume(unaff_s2);" (call_expression "bufchain_consume(unaff_s2)" (identifier "bufchain_consume") (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")"))) (; ";")) (expression_statement "proxy_activate(param_1);" (call_expression "proxy_activate(param_1)" (identifier "proxy_activate") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}")) (else_clause "else if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" (else "else") (if_statement "if (local_21b == '\\') {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }\n            else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" (if "if") (parenthesized_expression "(local_21b == '\\')" (( "(") (binary_expression "local_21b == '\\'" (identifier "local_21b") (== "==") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) () ")")) (compound_statement "{\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;\n              (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n            }" ({ "{") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x53a4;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x53a4" (identifier "param_2") (= "=") (binary_expression "PTR_s_1_0_000be3a8 + -0x53a4" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x53a4"))) (; ";")) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" (else "else") (compound_statement "{\n              param_4 = 0;\n              if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n            }" ({ "{") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_21b == ']') {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }\n              else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" (if "if") (parenthesized_expression "(local_21b == ']')" (( "(") (binary_expression "local_21b == ']'" (identifier "local_21b") (== "==") (char_literal "']'" (' "'") (character "]") (' "'"))) () ")")) (compound_statement "{\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5370;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" ({ "{") (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x5370;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x5370" (identifier "param_2") (= "=") (binary_expression "PTR_s_1_0_000be3a8 + -0x5370" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x5370"))) (; ";")) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" (else "else") (compound_statement "{\n                param_3 = (char *)0x1f40;\n                param_2 = PTR_s_1_0_000be3a8 + -0x5338;\n                (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n              }" ({ "{") (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x5338;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x5338" (identifier "param_2") (= "=") (binary_expression "PTR_s_1_0_000be3a8 + -0x5338" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x5338"))) (; ";")) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}")))))) (} "}")) (else_clause "else {\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }" (else "else") (compound_statement "{\n            param_4 = 0;\n            param_3 = (char *)0x1f40;\n            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;\n            (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n          }" ({ "{") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x53ec;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x53ec" (identifier "param_2") (= "=") (binary_expression "PTR_s_1_0_000be3a8 + -0x53ec" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x53ec"))) (; ";")) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" (else "else") (compound_statement "{\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        param_2 = PTR_s_1_0_000be3a8 + -0x545c;\n        (**(code **)(**(int **)(param_1 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n      }" ({ "{") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = (char *)0x1f41;" (assignment_expression "param_3 = (char *)0x1f41" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f41" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f41"))) (; ";")) (expression_statement "param_2 = PTR_s_1_0_000be3a8 + -0x545c;" (assignment_expression "param_2 = PTR_s_1_0_000be3a8 + -0x545c" (identifier "param_2") (= "=") (binary_expression "PTR_s_1_0_000be3a8 + -0x545c" (identifier "PTR_s_1_0_000be3a8") (+ "+") (number_literal "-0x545c"))) (; ";")) (expression_statement "(**(code **)(**(int **)(param_1 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(param_1 + 0xc) + 4" (pointer_expression "**(int **)(param_1 + 0xc)" (* "*") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")))))))) (} "}")))) (} "}")))) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {\n    return pcVar13;\n  }" (if "if") (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_000bef2c)" (( "(") (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_000bef2c" (identifier "local_1c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000bef2c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000bef2c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000bef2c")))) () ")")) (compound_statement "{\n    return pcVar13;\n  }" ({ "{") (return_statement "return pcVar13;" (return "return") (identifier "pcVar13") (; ";")) (} "}"))) (expression_statement "iVar2 = local_1c;" (assignment_expression "iVar2 = local_1c" (identifier "iVar2") (= "=") (identifier "local_1c")) (; ";")) (expression_statement "puVar11 = PTR___stack_chk_fail_000bef04;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000bef04" (identifier "puVar11") (= "=") (identifier "PTR___stack_chk_fail_000bef04")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000bef04)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bef04)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bef04)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000bef04" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000bef04" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000bef04"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_25c = **(int **)(puVar11 + 0x990e4);" (assignment_expression "iStack_25c = **(int **)(puVar11 + 0x990e4)" (identifier "iStack_25c") (= "=") (pointer_expression "**(int **)(puVar11 + 0x990e4)" (* "*") (pointer_expression "*(int **)(puVar11 + 0x990e4)" (* "*") (cast_expression "(int **)(puVar11 + 0x990e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x990e4)" (( "(") (binary_expression "puVar11 + 0x990e4" (identifier "puVar11") (+ "+") (number_literal "0x990e4")) () ")")))))) (; ";")) (expression_statement "puStack_258 = param_1;" (assignment_expression "puStack_258 = param_1" (identifier "puStack_258") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcStack_254 = pcVar13;" (assignment_expression "pcStack_254 = pcVar13" (identifier "pcStack_254") (= "=") (identifier "pcVar13")) (; ";")) (expression_statement "pcStack_250 = unaff_s2;" (assignment_expression "pcStack_250 = unaff_s2" (identifier "pcStack_250") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pcStack_24c = unaff_s3;" (assignment_expression "pcStack_24c = unaff_s3" (identifier "pcStack_24c") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "pcStack_248 = unaff_s4;" (assignment_expression "pcStack_248 = unaff_s4" (identifier "pcStack_248") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x44) == -1) {\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }\n  else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x44) == -1)" (( "(") (binary_expression "*(int *)(iVar2 + 0x44) == -1" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    uStack_460 = CONCAT13(5,uStack_460._1_3_);\n    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }\n    pcVar12 = (char *)&uStack_460;\n    param_3 = pcStack_46c;\n    (**(code **)(**(int **)(iVar2 + 8) + 8))();\n    *(undefined4 *)(iVar2 + 0x44) = 1;\n    pcVar13 = (char *)0x0;\n    pcStack_4b0 = unaff_s2;\n  }" ({ "{") (expression_statement "uStack_460 = CONCAT13(5,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(5,uStack_460._1_3_)" (identifier "uStack_460") (= "=") (call_expression "CONCAT13(5,uStack_460._1_3_)" (identifier "CONCAT13") (argument_list "(5,uStack_460._1_3_)" (( "(") (number_literal "5") (, ",") (field_expression "uStack_460._1_3_" (identifier "uStack_460") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);" (assignment_expression "pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" (identifier "pcVar13") (= "=") (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" (identifier "conf_get_str") (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x10)" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x74)" (( "(") (binary_expression "iVar2 + 0x74" (identifier "iVar2") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);" (assignment_expression "pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" (identifier "pcVar12") (= "=") (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" (identifier "conf_get_str") (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x11)" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x74)" (( "(") (binary_expression "iVar2 + 0x74" (identifier "iVar2") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (number_literal "0x11") () ")"))))) (; ";")) (if_statement "if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }\n    else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }" (if "if") (parenthesized_expression "((*pcVar13 == '\0') && (*pcVar12 == '\0'))" (( "(") (binary_expression "(*pcVar13 == '\0') && (*pcVar12 == '\0')" (parenthesized_expression "(*pcVar13 == '\0')" (( "(") (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar12 == '\0')" (( "(") (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n      pcStack_46c = (char *)0x3;\n    }" ({ "{") (expression_statement "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" (identifier "uStack_460") (. ".") (field_identifier "_1_3_")) (= "=") (call_expression "CONCAT12(1,uStack_460._2_2_)" (identifier "CONCAT12") (argument_list "(1,uStack_460._2_2_)" (( "(") (number_literal "1") (, ",") (field_expression "uStack_460._2_2_" (identifier "uStack_460") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;" (assignment_expression "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (identifier "uStack_460") (= "=") (binary_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (call_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_)" (identifier "CONCAT22") (argument_list "(uStack_460._0_2_,uStack_460._2_2_)" (( "(") (field_expression "uStack_460._0_2_" (identifier "uStack_460") (. ".") (field_identifier "_0_2_")) (, ",") (field_expression "uStack_460._2_2_" (identifier "uStack_460") (. ".") (field_identifier "_2_2_")) () ")"))) (& "&") (number_literal "0xffff00ff"))) (; ";")) (expression_statement "pcStack_46c = (char *)0x3;" (assignment_expression "pcStack_46c = (char *)0x3" (identifier "pcStack_46c") (= "=") (cast_expression "(char *)0x3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (} "}")) (else_clause "else {\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }" (else "else") (compound_statement "{\n      uStack_460._2_2_ = (ushort)(byte)uStack_460;\n      pcStack_46c = (char *)0x3;\n      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);\n      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';\n      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);\n      pcStack_46c = pcStack_46c + 1;\n    }" ({ "{") (expression_statement "uStack_460._2_2_ = (ushort)(byte)uStack_460;" (assignment_expression "uStack_460._2_2_ = (ushort)(byte)uStack_460" (field_expression "uStack_460._2_2_" (identifier "uStack_460") (. ".") (field_identifier "_2_2_")) (= "=") (cast_expression "(ushort)(byte)uStack_460" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (cast_expression "(byte)uStack_460" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_460")))) (; ";")) (expression_statement "pcStack_46c = (char *)0x3;" (assignment_expression "pcStack_46c = (char *)0x3" (identifier "pcStack_46c") (= "=") (cast_expression "(char *)0x3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (expression_statement "proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);" (call_expression "proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c)" (identifier "proxy_socks5_offerencryptedauth") (argument_list "(&uStack_460,&pcStack_46c)" (( "(") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460")) (, ",") (pointer_expression "&pcStack_46c" (& "&") (identifier "pcStack_46c")) () ")"))) (; ";")) (expression_statement "*(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';" (assignment_expression "*(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02'" (pointer_expression "*(char *)((int)&uStack_460 + (int)pcStack_46c)" (* "*") (cast_expression "(char *)((int)&uStack_460 + (int)pcStack_46c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_460 + (int)pcStack_46c)" (( "(") (binary_expression "(int)&uStack_460 + (int)pcStack_46c" (cast_expression "(int)&uStack_460" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460"))) (+ "+") (cast_expression "(int)pcStack_46c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcStack_46c"))) () ")")))) (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (expression_statement "uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" (identifier "uStack_460") (. ".") (field_identifier "_1_3_")) (= "=") (call_expression "CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_)" (identifier "CONCAT12") (argument_list "((char)pcStack_46c + -1,uStack_460._2_2_)" (( "(") (binary_expression "(char)pcStack_46c + -1" (cast_expression "(char)pcStack_46c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pcStack_46c")) (+ "+") (number_literal "-1")) (, ",") (field_expression "uStack_460._2_2_" (identifier "uStack_460") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "pcStack_46c = pcStack_46c + 1;" (assignment_expression "pcStack_46c = pcStack_46c + 1" (identifier "pcStack_46c") (= "=") (binary_expression "pcStack_46c + 1" (identifier "pcStack_46c") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pcVar12 = (char *)&uStack_460;" (assignment_expression "pcVar12 = (char *)&uStack_460" (identifier "pcVar12") (= "=") (cast_expression "(char *)&uStack_460" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460")))) (; ";")) (expression_statement "param_3 = pcStack_46c;" (assignment_expression "param_3 = pcStack_46c" (identifier "param_3") (= "=") (identifier "pcStack_46c")) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 8) + 8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 8) + 8)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 8) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 8) + 8)" (( "(") (binary_expression "**(int **)(iVar2 + 8) + 8" (pointer_expression "**(int **)(iVar2 + 8)" (* "*") (pointer_expression "*(int **)(iVar2 + 8)" (* "*") (cast_expression "(int **)(iVar2 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 1;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 1" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcStack_4b0 = unaff_s2;" (assignment_expression "pcStack_4b0 = unaff_s2" (identifier "pcStack_4b0") (= "=") (identifier "unaff_s2")) (; ";")) (} "}")) (else_clause "else {\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    pcStack_4b0 = param_2;\n    if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }\n  }" ({ "{") (expression_statement "pcStack_4b0 = param_2;" (assignment_expression "pcStack_4b0 = param_2" (identifier "pcStack_4b0") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_2 == (char *)0x0) {\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }\n    else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      param_4 = *(int *)(iVar2 + 0x58);\n      param_3 = *(char **)(iVar2 + 0x54);\n      pcVar12 = *(char **)(iVar2 + 0x50);\n      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n      pcVar13 = (char *)0x0;\n    }" ({ "{") (expression_statement "param_4 = *(int *)(iVar2 + 0x58);" (assignment_expression "param_4 = *(int *)(iVar2 + 0x58)" (identifier "param_4") (= "=") (pointer_expression "*(int *)(iVar2 + 0x58)" (* "*") (cast_expression "(int *)(iVar2 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x58)" (( "(") (binary_expression "iVar2 + 0x58" (identifier "iVar2") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "param_3 = *(char **)(iVar2 + 0x54);" (assignment_expression "param_3 = *(char **)(iVar2 + 0x54)" (identifier "param_3") (= "=") (pointer_expression "*(char **)(iVar2 + 0x54)" (* "*") (cast_expression "(char **)(iVar2 + 0x54)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x54)" (( "(") (binary_expression "iVar2 + 0x54" (identifier "iVar2") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "pcVar12 = *(char **)(iVar2 + 0x50);" (assignment_expression "pcVar12 = *(char **)(iVar2 + 0x50)" (identifier "pcVar12") (= "=") (pointer_expression "*(char **)(iVar2 + 0x50)" (* "*") (cast_expression "(char **)(iVar2 + 0x50)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x50)" (( "(") (binary_expression "iVar2 + 0x50" (identifier "iVar2") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" (else "else") (if_statement "if (param_2 == (char *)0x1) {\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }\n    else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x1)" (( "(") (binary_expression "param_2 == (char *)0x1" (identifier "param_2") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n      pcVar13 = (char *)0x0;\n      pcVar12 = param_2;\n    }" ({ "{") (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" (identifier "pcVar12") (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" (else "else") (if_statement "if (param_2 == (char *)0x3) {\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }\n    else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" (if "if") (parenthesized_expression "(param_2 == (char *)0x3)" (( "(") (binary_expression "param_2 == (char *)0x3" (identifier "param_2") (== "==") (cast_expression "(char *)0x3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (compound_statement "{\n      param_3 = *(char **)(iVar2 + 0x70);\n      pcVar12 = *(char **)(iVar2 + 0x6c);\n      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();\n    }" ({ "{") (expression_statement "param_3 = *(char **)(iVar2 + 0x70);" (assignment_expression "param_3 = *(char **)(iVar2 + 0x70)" (identifier "param_3") (= "=") (pointer_expression "*(char **)(iVar2 + 0x70)" (* "*") (cast_expression "(char **)(iVar2 + 0x70)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x70)" (( "(") (binary_expression "iVar2 + 0x70" (identifier "iVar2") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "pcVar12 = *(char **)(iVar2 + 0x6c);" (assignment_expression "pcVar12 = *(char **)(iVar2 + 0x6c)" (identifier "pcVar12") (= "=") (pointer_expression "*(char **)(iVar2 + 0x6c)" (* "*") (cast_expression "(char **)(iVar2 + 0x6c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x6c)" (( "(") (binary_expression "iVar2 + 0x6c" (identifier "iVar2") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();" (assignment_expression "pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))()" (identifier "pcVar13") (= "=") (cast_expression "(char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 0x10)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 0x10)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 0x10)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 0x10" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" (else "else") (compound_statement "{\n      pcVar5 = param_2;\n      if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }\n    }" ({ "{") (expression_statement "pcVar5 = param_2;" (assignment_expression "pcVar5 = param_2" (identifier "pcVar5") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_2 == (char *)0x2) {\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }\n      else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }" (if "if") (parenthesized_expression "(param_2 == (char *)0x2)" (( "(") (binary_expression "param_2 == (char *)0x2" (identifier "param_2") (== "==") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n        pcVar5 = (char *)(iVar2 + 0x34);\n        pcStack_4b0 = pcVar5;\n        if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }\n      }" ({ "{") (expression_statement "pcVar5 = (char *)(iVar2 + 0x34);" (assignment_expression "pcVar5 = (char *)(iVar2 + 0x34)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(iVar2 + 0x34)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")")))) (; ";")) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" (identifier "pcStack_4b0") (= "=") (identifier "pcVar5")) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x44) == 1) {\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }\n        else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x44) == 1)" (( "(") (binary_expression "*(int *)(iVar2 + 0x44) == 1" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          iVar8 = bufchain_size(pcVar5);\n          param_3 = (char *)0x2;\n          pcVar13 = (char *)0x1;\n          pcVar12 = param_2;\n          if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }\n        }" ({ "{") (expression_statement "iVar8 = bufchain_size(pcVar5);" (assignment_expression "iVar8 = bufchain_size(pcVar5)" (identifier "iVar8") (= "=") (call_expression "bufchain_size(pcVar5)" (identifier "bufchain_size") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")")))) (; ";")) (expression_statement "param_3 = (char *)0x2;" (assignment_expression "param_3 = (char *)0x2" (identifier "param_3") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" (identifier "pcVar12") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (1 < iVar8) {\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }" (if "if") (parenthesized_expression "(1 < iVar8)" (( "(") (binary_expression "1 < iVar8" (number_literal "1") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n            bufchain_fetch(pcVar5,&uStack_460);\n            param_4 = 0;\n            if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }\n            param_3 = (char *)0x1f40;\n            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);\n            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n          }" ({ "{") (expression_statement "bufchain_fetch(pcVar5,&uStack_460);" (call_expression "bufchain_fetch(pcVar5,&uStack_460)" (identifier "bufchain_fetch") (argument_list "(pcVar5,&uStack_460)" (( "(") (identifier "pcVar5") (, ",") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460")) () ")"))) (; ";")) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uStack_460._0_1_ == '\x05') {\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }" (if "if") (parenthesized_expression "(uStack_460._0_1_ == '\x05')" (( "(") (binary_expression "uStack_460._0_1_ == '\x05'" (field_expression "uStack_460._0_1_" (identifier "uStack_460") (. ".") (field_identifier "_0_1_")) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\n              if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }\n              param_4 = 0;\n              param_2 = (char *)0x2;\n              bufchain_consume(pcVar5);\n              iVar8 = *(int *)(iVar2 + 0x44);\n              goto LAB_00026064;\n            }" ({ "{") (if_statement "if (uStack_460._1_1_ == '\0') {\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }\n              else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" (if "if") (parenthesized_expression "(uStack_460._1_1_ == '\0')" (( "(") (binary_expression "uStack_460._1_1_ == '\0'" (field_expression "uStack_460._1_1_" (identifier "uStack_460") (. ".") (field_identifier "_1_1_")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                *(undefined4 *)(iVar2 + 0x44) = 2;\n              }" ({ "{") (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 2;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 2" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" (else "else") (if_statement "if (uStack_460._1_1_ == '\x01') {\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }\n              else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" (if "if") (parenthesized_expression "(uStack_460._1_1_ == '\x01')" (( "(") (binary_expression "uStack_460._1_1_ == '\x01'" (field_expression "uStack_460._1_1_" (identifier "uStack_460") (. ".") (field_identifier "_1_1_")) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n                *(undefined4 *)(iVar2 + 0x44) = 4;\n              }" ({ "{") (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 4;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 4" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" (else "else") (if_statement "if (uStack_460._1_1_ == '\x02') {\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }\n              else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" (if "if") (parenthesized_expression "(uStack_460._1_1_ == '\x02')" (( "(") (binary_expression "uStack_460._1_1_ == '\x02'" (field_expression "uStack_460._1_1_" (identifier "uStack_460") (. ".") (field_identifier "_1_1_")) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n                *(undefined4 *)(iVar2 + 0x44) = 5;\n              }" ({ "{") (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 5;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 5" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "5")) (; ";")) (} "}")) (else_clause "else {\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" (else "else") (compound_statement "{\n                param_4 = 0;\n                if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }\n                *(undefined4 *)(iVar2 + 0x44) = 6;\n              }" ({ "{") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uStack_460._1_1_ != '\x03') {\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }" (if "if") (parenthesized_expression "(uStack_460._1_1_ != '\x03')" (( "(") (binary_expression "uStack_460._1_1_ != '\x03'" (field_expression "uStack_460._1_1_" (identifier "uStack_460") (. ".") (field_identifier "_1_1_")) (!= "!=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  goto LAB_00025ff8;\n                }" ({ "{") (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc)" (identifier "pcVar12") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x52cc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x52cc)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x52cc" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x52cc")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_00025ff8;" (goto "goto") (statement_identifier "LAB_00025ff8") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 6;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 6" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "6")) (; ";")) (} "}")))))))) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2 = (char *)0x2;" (assignment_expression "param_2 = (char *)0x2" (identifier "param_2") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "bufchain_consume(pcVar5);" (call_expression "bufchain_consume(pcVar5)" (identifier "bufchain_consume") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar8 = *(int *)(iVar2 + 0x44)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (goto_statement "goto LAB_00026064;" (goto "goto") (statement_identifier "LAB_00026064") (; ";")) (} "}"))) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304)" (identifier "pcVar12") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5304)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5304)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5304" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x5304")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar8 = *(int *)(iVar2 + 0x44);\nLAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }\n        }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar8 = *(int *)(iVar2 + 0x44)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (labeled_statement "LAB_00026064:\n          if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" (statement_identifier "LAB_00026064") (: ":") (if_statement "if (iVar8 == 7) {\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }\n          else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" (if "if") (parenthesized_expression "(iVar8 == 7)" (( "(") (binary_expression "iVar8 == 7" (identifier "iVar8") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n            iVar14 = iVar2 + 0x34;\n            iVar8 = bufchain_size(iVar14);\n            param_3 = (char *)0x2;\n            if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }\n            pcVar13 = (char *)0x1;\n            pcVar12 = param_2;\n          }" ({ "{") (expression_statement "iVar14 = iVar2 + 0x34;" (assignment_expression "iVar14 = iVar2 + 0x34" (identifier "iVar14") (= "=") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34"))) (; ";")) (expression_statement "iVar8 = bufchain_size(iVar14);" (assignment_expression "iVar8 = bufchain_size(iVar14)" (identifier "iVar8") (= "=") (call_expression "bufchain_size(iVar14)" (identifier "bufchain_size") (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")")))) (; ";")) (expression_statement "param_3 = (char *)0x2;" (assignment_expression "param_3 = (char *)0x2" (identifier "param_3") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (if_statement "if (1 < iVar8) {\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }" (if "if") (parenthesized_expression "(1 < iVar8)" (( "(") (binary_expression "1 < iVar8" (number_literal "1") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n              bufchain_fetch(iVar14,&uStack_460);\n              if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n            }" ({ "{") (expression_statement "bufchain_fetch(iVar14,&uStack_460);" (call_expression "bufchain_fetch(iVar14,&uStack_460)" (identifier "bufchain_fetch") (argument_list "(iVar14,&uStack_460)" (( "(") (identifier "iVar14") (, ",") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460")) () ")"))) (; ";")) (if_statement "if (uStack_460._0_1_ == '\x01') {\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }" (if "if") (parenthesized_expression "(uStack_460._0_1_ == '\x01')" (( "(") (binary_expression "uStack_460._0_1_ == '\x01'" (field_expression "uStack_460._0_1_" (identifier "uStack_460") (. ".") (field_identifier "_0_1_")) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n                param_4 = 0;\n                if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n                goto LAB_00025ff8;\n              }" ({ "{") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uStack_460._1_1_ == '\0') {\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }" (if "if") (parenthesized_expression "(uStack_460._1_1_ == '\0')" (( "(") (binary_expression "uStack_460._1_1_ == '\0'" (field_expression "uStack_460._1_1_" (identifier "uStack_460") (. ".") (field_identifier "_1_1_")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  bufchain_consume(iVar14,2);\n                  *(undefined4 *)(iVar2 + 0x44) = 2;\n                  goto LAB_000262a8;\n                }" ({ "{") (expression_statement "bufchain_consume(iVar14,2);" (call_expression "bufchain_consume(iVar14,2)" (identifier "bufchain_consume") (argument_list "(iVar14,2)" (( "(") (identifier "iVar14") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 2;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 2" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_000262a8;" (goto "goto") (statement_identifier "LAB_000262a8") (; ";")) (} "}"))) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244)" (identifier "pcVar12") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5244)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5244)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5244" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x5244")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_00025ff8;" (goto "goto") (statement_identifier "LAB_00025ff8") (; ";")) (} "}"))) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);" (assignment_expression "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290)" (identifier "param_2") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5290)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5290)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5290" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x5290")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" (identifier "pcVar12") (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" (else "else") (if_statement "if ((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)) {\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" (if "if") (parenthesized_expression "((iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0))" (( "(") (binary_expression "(iVar8 != 8) ||\n                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)" (parenthesized_expression "(iVar8 != 8)" (( "(") (binary_expression "iVar8 != 8" (identifier "iVar8") (!= "!=") (number_literal "8")) () ")")) (|| "||") (parenthesized_expression "(pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0)" (( "(") (comma_expression "pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,\n                  pcVar13 == (char *)0x0" (assignment_expression "pcVar13 = (char *)proxy_socks5_handlechap(iVar2)" (identifier "pcVar13") (= "=") (cast_expression "(char *)proxy_socks5_handlechap(iVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "proxy_socks5_handlechap(iVar2)" (identifier "proxy_socks5_handlechap") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))))) (, ",") (comma_expression "pcVar12 = param_2,\n                  pcVar13 == (char *)0x0" (assignment_expression "pcVar12 = param_2" (identifier "pcVar12") (= "=") (identifier "param_2")) (, ",") (binary_expression "pcVar13 == (char *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (compound_statement "{\n            iVar8 = *(int *)(iVar2 + 0x44);\n            if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;\n          }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar8 = *(int *)(iVar2 + 0x44)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 2) {\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" (if "if") (parenthesized_expression "(iVar8 == 2)" (( "(") (binary_expression "iVar8 == 2" (identifier "iVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\nLAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));\n              if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }\n              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);\n              uStack_460 = CONCAT13(5,uStack_460._1_3_);\n              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;\n              uVar9 = *(undefined4 *)(iVar2 + 0x14);\n              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);\n              (acStack_462 + 1)[(int)param_3] = (char)uVar9;\n              pcVar12 = (char *)&uStack_460;\n              (**(code **)(**(int **)(iVar2 + 8) + 8))();\n              *(undefined4 *)(iVar2 + 0x44) = 3;\n              pcVar13 = (char *)0x1;\n            }" ({ "{") (labeled_statement "LAB_000262a8:\n              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));" (statement_identifier "LAB_000262a8") (: ":") (expression_statement "iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));" (assignment_expression "iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10))" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10))" (parenthesized_expression "(**(code **)(puVar11 + 0x98720))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x98720)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x98720)" (* "*") (cast_expression "(code **)(puVar11 + 0x98720)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x98720)" (( "(") (binary_expression "puVar11 + 0x98720" (identifier "puVar11") (+ "+") (number_literal "0x98720")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar2 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";"))) (if_statement "if (iVar8 == 1) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }\n              else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" (if "if") (parenthesized_expression "(iVar8 == 1)" (( "(") (binary_expression "iVar8 == 1" (identifier "iVar8") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                uStack_460 = CONCAT31(uStack_460._0_3_,1);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0xa;\n              }" ({ "{") (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,1);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,1)" (identifier "uStack_460") (= "=") (call_expression "CONCAT31(uStack_460._0_3_,1)" (identifier "CONCAT31") (argument_list "(uStack_460._0_3_,1)" (( "(") (field_expression "uStack_460._0_3_" (identifier "uStack_460") (. ".") (field_identifier "_0_3_")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);" (call_expression "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" (parenthesized_expression "(**(code **)(puVar11 + 0x98724))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x98724)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x98724)" (* "*") (cast_expression "(code **)(puVar11 + 0x98724)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x98724)" (( "(") (binary_expression "puVar11 + 0x98724" (identifier "puVar11") (+ "+") (number_literal "0x98724")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "&uStack_45c" (& "&") (identifier "uStack_45c")) () ")"))) (; ";")) (expression_statement "param_3 = (char *)0xa;" (assignment_expression "param_3 = (char *)0xa" (identifier "param_3") (= "=") (cast_expression "(char *)0xa" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) (; ";")) (} "}")) (else_clause "else if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" (else "else") (if_statement "if (iVar8 == 2) {\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }\n              else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" (if "if") (parenthesized_expression "(iVar8 == 2)" (( "(") (binary_expression "iVar8 == 2" (identifier "iVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                uStack_460 = CONCAT31(uStack_460._0_3_,4);\n                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);\n                param_3 = (char *)0x16;\n              }" ({ "{") (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,4);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,4)" (identifier "uStack_460") (= "=") (call_expression "CONCAT31(uStack_460._0_3_,4)" (identifier "CONCAT31") (argument_list "(uStack_460._0_3_,4)" (( "(") (field_expression "uStack_460._0_3_" (identifier "uStack_460") (. ".") (field_identifier "_0_3_")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);" (call_expression "(**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" (parenthesized_expression "(**(code **)(puVar11 + 0x98724))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x98724)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x98724)" (* "*") (cast_expression "(code **)(puVar11 + 0x98724)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x98724)" (( "(") (binary_expression "puVar11 + 0x98724" (identifier "puVar11") (+ "+") (number_literal "0x98724")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar2 + 0x10),&uStack_45c)" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "&uStack_45c" (& "&") (identifier "uStack_45c")) () ")"))) (; ";")) (expression_statement "param_3 = (char *)0x16;" (assignment_expression "param_3 = (char *)0x16" (identifier "param_3") (= "=") (cast_expression "(char *)0x16" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x16"))) (; ";")) (} "}")) (else_clause "else {\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" (else "else") (compound_statement "{\n                if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }\n                uStack_460 = CONCAT31(uStack_460._0_3_,3);\n                (**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);\n                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);\n                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);\n                param_3 = (char *)(cVar10 + 7);\n              }" ({ "{") (if_statement "if (iVar8 != 3) {\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }" (if "if") (parenthesized_expression "(iVar8 != 3)" (( "(") (binary_expression "iVar8 != 3" (identifier "iVar8") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;\n                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);\n                  (**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);\n                  goto LAB_0002640c;\n                }" ({ "{") (expression_statement "param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;" (assignment_expression "param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40" (identifier "param_4") (= "=") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x4e40" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x4e40"))) (; ";")) (expression_statement "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);" (assignment_expression "param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4)" (identifier "param_2") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x54b4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x54b4)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x54b4" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x54b4")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);" (call_expression "(**(code **)(puVar11 + 0x98f10))\n                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a)" (parenthesized_expression "(**(code **)(puVar11 + 0x98f10))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x98f10)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x98f10)" (* "*") (cast_expression "(code **)(puVar11 + 0x98f10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x98f10)" (( "(") (binary_expression "puVar11 + 0x98f10" (identifier "puVar11") (+ "+") (number_literal "0x98f10")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5404" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x5404")) (, ",") (identifier "param_2") (, ",") (number_literal "0x46a") () ")"))) (; ";")) (goto_statement "goto LAB_0002640c;" (goto "goto") (statement_identifier "LAB_0002640c") (; ";")) (} "}"))) (expression_statement "uStack_460 = CONCAT31(uStack_460._0_3_,3);" (assignment_expression "uStack_460 = CONCAT31(uStack_460._0_3_,3)" (identifier "uStack_460") (= "=") (call_expression "CONCAT31(uStack_460._0_3_,3)" (identifier "CONCAT31") (argument_list "(uStack_460._0_3_,3)" (( "(") (field_expression "uStack_460._0_3_" (identifier "uStack_460") (. ".") (field_identifier "_0_3_")) (, ",") (number_literal "3") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);" (call_expression "(**(code **)(puVar11 + 0x98568))\n                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100)" (parenthesized_expression "(**(code **)(puVar11 + 0x98568))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x98568)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x98568)" (* "*") (cast_expression "(code **)(puVar11 + 0x98568)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x98568)" (( "(") (binary_expression "puVar11 + 0x98568" (identifier "puVar11") (+ "+") (number_literal "0x98568")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100)" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (binary_expression "(int)&uStack_45c + 1" (cast_expression "(int)&uStack_45c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_45c" (& "&") (identifier "uStack_45c"))) (+ "+") (number_literal "1")) (, ",") (number_literal "0x100") () ")"))) (; ";")) (expression_statement "cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);" (assignment_expression "cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1)" (identifier "cVar10") (= "=") (call_expression "(**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x9902c)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x9902c)" (* "*") (cast_expression "(code **)(puVar11 + 0x9902c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x9902c)" (( "(") (binary_expression "puVar11 + 0x9902c" (identifier "puVar11") (+ "+") (number_literal "0x9902c")) () ")"))))) () ")")) (argument_list "((int)&uStack_45c + 1)" (( "(") (binary_expression "(int)&uStack_45c + 1" (cast_expression "(int)&uStack_45c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_45c" (& "&") (identifier "uStack_45c"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);" (assignment_expression "uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_)" (identifier "uStack_45c") (= "=") (call_expression "CONCAT13(cVar10,uStack_45c._1_3_)" (identifier "CONCAT13") (argument_list "(cVar10,uStack_45c._1_3_)" (( "(") (identifier "cVar10") (, ",") (field_expression "uStack_45c._1_3_" (identifier "uStack_45c") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "param_3 = (char *)(cVar10 + 7);" (assignment_expression "param_3 = (char *)(cVar10 + 7)" (identifier "param_3") (= "=") (cast_expression "(char *)(cVar10 + 7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(cVar10 + 7)" (( "(") (binary_expression "cVar10 + 7" (identifier "cVar10") (+ "+") (number_literal "7")) () ")")))) (; ";")) (} "}")))))) (expression_statement "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" (identifier "uStack_460") (. ".") (field_identifier "_1_3_")) (= "=") (call_expression "CONCAT12(1,uStack_460._2_2_)" (identifier "CONCAT12") (argument_list "(1,uStack_460._2_2_)" (( "(") (number_literal "1") (, ",") (field_expression "uStack_460._2_2_" (identifier "uStack_460") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "uStack_460 = CONCAT13(5,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(5,uStack_460._1_3_)" (identifier "uStack_460") (= "=") (call_expression "CONCAT13(5,uStack_460._1_3_)" (identifier "CONCAT13") (argument_list "(5,uStack_460._1_3_)" (( "(") (number_literal "5") (, ",") (field_expression "uStack_460._1_3_" (identifier "uStack_460") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;" (assignment_expression "uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (identifier "uStack_460") (= "=") (binary_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff" (call_expression "CONCAT22(uStack_460._0_2_,uStack_460._2_2_)" (identifier "CONCAT22") (argument_list "(uStack_460._0_2_,uStack_460._2_2_)" (( "(") (field_expression "uStack_460._0_2_" (identifier "uStack_460") (. ".") (field_identifier "_0_2_")) (, ",") (field_expression "uStack_460._2_2_" (identifier "uStack_460") (. ".") (field_identifier "_2_2_")) () ")"))) (& "&") (number_literal "0xffff00ff"))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(iVar2 + 0x14);" (assignment_expression "uVar9 = *(undefined4 *)(iVar2 + 0x14)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);" (assignment_expression "acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8)" (subscript_expression "acStack_462[(int)param_3]" (identifier "acStack_462") ([ "[") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (] "]")) (= "=") (cast_expression "(char)((uint)uVar9 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar9 >> 8)" (( "(") (binary_expression "(uint)uVar9 >> 8" (cast_expression "(uint)uVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar9")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "(acStack_462 + 1)[(int)param_3] = (char)uVar9;" (assignment_expression "(acStack_462 + 1)[(int)param_3] = (char)uVar9" (subscript_expression "(acStack_462 + 1)[(int)param_3]" (parenthesized_expression "(acStack_462 + 1)" (( "(") (binary_expression "acStack_462 + 1" (identifier "acStack_462") (+ "+") (number_literal "1")) () ")")) ([ "[") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (] "]")) (= "=") (cast_expression "(char)uVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "pcVar12 = (char *)&uStack_460;" (assignment_expression "pcVar12 = (char *)&uStack_460" (identifier "pcVar12") (= "=") (cast_expression "(char *)&uStack_460" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 8) + 8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 8) + 8)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 8) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 8) + 8)" (( "(") (binary_expression "**(int **)(iVar2 + 8) + 8" (pointer_expression "**(int **)(iVar2 + 8)" (* "*") (pointer_expression "*(int **)(iVar2 + 8)" (* "*") (cast_expression "(int **)(iVar2 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 3" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" (else "else") (if_statement "if (iVar8 == 3) {\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }\n            else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" (if "if") (parenthesized_expression "(iVar8 == 3)" (( "(") (binary_expression "iVar8 == 3" (identifier "iVar8") (== "==") (number_literal "3")) () ")")) (compound_statement "{\nLAB_0002640c:\n              iVar14 = iVar2 + 0x34;\n              iVar8 = bufchain_size(iVar14);\n              param_3 = &DAT_00000005;\n              if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }\n            }" ({ "{") (labeled_statement "LAB_0002640c:\n              iVar14 = iVar2 + 0x34;" (statement_identifier "LAB_0002640c") (: ":") (expression_statement "iVar14 = iVar2 + 0x34;" (assignment_expression "iVar14 = iVar2 + 0x34" (identifier "iVar14") (= "=") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34"))) (; ";"))) (expression_statement "iVar8 = bufchain_size(iVar14);" (assignment_expression "iVar8 = bufchain_size(iVar14)" (identifier "iVar8") (= "=") (call_expression "bufchain_size(iVar14)" (identifier "bufchain_size") (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")")))) (; ";")) (expression_statement "param_3 = &DAT_00000005;" (assignment_expression "param_3 = &DAT_00000005" (identifier "param_3") (= "=") (pointer_expression "&DAT_00000005" (& "&") (identifier "DAT_00000005"))) (; ";")) (if_statement "if (iVar8 < 5) {\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }\n              else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }" (if "if") (parenthesized_expression "(iVar8 < 5)" (( "(") (binary_expression "iVar8 < 5" (identifier "iVar8") (< "<") (number_literal "5")) () ")")) (compound_statement "{\nLAB_00026430:\n                pcVar13 = (char *)0x1;\n                pcVar12 = param_2;\n                pcStack_4b0 = pcVar5;\n              }" ({ "{") (labeled_statement "LAB_00026430:\n                pcVar13 = (char *)0x1;" (statement_identifier "LAB_00026430") (: ":") (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";"))) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" (identifier "pcVar12") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" (identifier "pcStack_4b0") (= "=") (identifier "pcVar5")) (; ";")) (} "}")) (else_clause "else {\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }" (else "else") (compound_statement "{\n                bufchain_fetch(iVar14,&cStack_468);\n                pcStack_4b0 = (char *)(int)cStack_467;\n                if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }\n              }" ({ "{") (expression_statement "bufchain_fetch(iVar14,&cStack_468);" (call_expression "bufchain_fetch(iVar14,&cStack_468)" (identifier "bufchain_fetch") (argument_list "(iVar14,&cStack_468)" (( "(") (identifier "iVar14") (, ",") (pointer_expression "&cStack_468" (& "&") (identifier "cStack_468")) () ")"))) (; ";")) (expression_statement "pcStack_4b0 = (char *)(int)cStack_467;" (assignment_expression "pcStack_4b0 = (char *)(int)cStack_467" (identifier "pcStack_4b0") (= "=") (cast_expression "(char *)(int)cStack_467" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)cStack_467" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cStack_467")))) (; ";")) (if_statement "if (cStack_468 == '\x05') {\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }\n                else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }" (if "if") (parenthesized_expression "(cStack_468 == '\x05')" (( "(") (binary_expression "cStack_468 == '\x05'" (identifier "cStack_468") (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\n                  if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }\n                }" ({ "{") (if_statement "if (pcStack_4b0 == (char *)0x0) {\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }\n                  else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }" (if "if") (parenthesized_expression "(pcStack_4b0 == (char *)0x0)" (( "(") (binary_expression "pcStack_4b0 == (char *)0x0" (identifier "pcStack_4b0") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }\n                    iVar8 = bufchain_size(iVar14);\n                    pcVar5 = param_2;\n                    if (iVar8 < (int)param_2) goto LAB_00026430;\n                    pcVar12 = param_2;\n                    bufchain_consume(iVar14);\n                    proxy_activate(iVar2);\n                    pcVar13 = (char *)0x1;\n                    pcStack_4b0 = param_2;\n                  }" ({ "{") (if_statement "if (cStack_465 == '\x03') {\n                      param_2 = (char *)(bStack_464 + 6);\n                    }\n                    else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" (if "if") (parenthesized_expression "(cStack_465 == '\x03')" (( "(") (binary_expression "cStack_465 == '\x03'" (identifier "cStack_465") (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n                      param_2 = (char *)(bStack_464 + 6);\n                    }" ({ "{") (expression_statement "param_2 = (char *)(bStack_464 + 6);" (assignment_expression "param_2 = (char *)(bStack_464 + 6)" (identifier "param_2") (= "=") (cast_expression "(char *)(bStack_464 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(bStack_464 + 6)" (( "(") (binary_expression "bStack_464 + 6" (identifier "bStack_464") (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}")) (else_clause "else if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" (else "else") (if_statement "if (cStack_465 == '\x04') {\n                      param_2 = (char *)0x16;\n                    }\n                    else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" (if "if") (parenthesized_expression "(cStack_465 == '\x04')" (( "(") (binary_expression "cStack_465 == '\x04'" (identifier "cStack_465") (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n                      param_2 = (char *)0x16;\n                    }" ({ "{") (expression_statement "param_2 = (char *)0x16;" (assignment_expression "param_2 = (char *)0x16" (identifier "param_2") (= "=") (cast_expression "(char *)0x16" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x16"))) (; ";")) (} "}")) (else_clause "else {\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" (else "else") (compound_statement "{\n                      param_4 = 0;\n                      if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }\n                      param_2 = (char *)0xa;\n                    }" ({ "{") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (cStack_465 != '\x01') {\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }" (if "if") (parenthesized_expression "(cStack_465 != '\x01')" (( "(") (binary_expression "cStack_465 != '\x01'" (identifier "cStack_465") (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n                        param_3 = (char *)0x1f40;\n                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);\n                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                        pcVar13 = (char *)0x1;\n                        goto LAB_00025ff8;\n                      }" ({ "{") (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc)" (identifier "pcVar12") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x50dc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x50dc)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x50dc" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x50dc")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_00025ff8;" (goto "goto") (statement_identifier "LAB_00025ff8") (; ";")) (} "}"))) (expression_statement "param_2 = (char *)0xa;" (assignment_expression "param_2 = (char *)0xa" (identifier "param_2") (= "=") (cast_expression "(char *)0xa" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) (; ";")) (} "}")))))) (expression_statement "iVar8 = bufchain_size(iVar14);" (assignment_expression "iVar8 = bufchain_size(iVar14)" (identifier "iVar8") (= "=") (call_expression "bufchain_size(iVar14)" (identifier "bufchain_size") (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")")))) (; ";")) (expression_statement "pcVar5 = param_2;" (assignment_expression "pcVar5 = param_2" (identifier "pcVar5") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (iVar8 < (int)param_2) goto LAB_00026430;" (if "if") (parenthesized_expression "(iVar8 < (int)param_2)" (( "(") (binary_expression "iVar8 < (int)param_2" (identifier "iVar8") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (goto_statement "goto LAB_00026430;" (goto "goto") (statement_identifier "LAB_00026430") (; ";"))) (expression_statement "pcVar12 = param_2;" (assignment_expression "pcVar12 = param_2" (identifier "pcVar12") (= "=") (identifier "param_2")) (; ";")) (expression_statement "bufchain_consume(iVar14);" (call_expression "bufchain_consume(iVar14)" (identifier "bufchain_consume") (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "proxy_activate(iVar2);" (call_expression "proxy_activate(iVar2)" (identifier "proxy_activate") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pcStack_4b0 = param_2;" (assignment_expression "pcStack_4b0 = param_2" (identifier "pcStack_4b0") (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else {\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }" (else "else") (compound_statement "{\n                    iVar8 = *(int *)(puVar11 + 0x98560);\n                    uStack_460 = *(uint *)(iVar8 + -0x51d0);\n                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);\n                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);\n                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);\n                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }\n                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);\n                    (**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);\n                    param_4 = 0;\n                    param_3 = (char *)0x1f40;\n                    pcVar12 = (char *)&uStack_460;\n                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                    pcVar13 = (char *)0x1;\n                  }" ({ "{") (expression_statement "iVar8 = *(int *)(puVar11 + 0x98560);" (assignment_expression "iVar8 = *(int *)(puVar11 + 0x98560)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")"))))) (; ";")) (expression_statement "uStack_460 = *(uint *)(iVar8 + -0x51d0);" (assignment_expression "uStack_460 = *(uint *)(iVar8 + -0x51d0)" (identifier "uStack_460") (= "=") (pointer_expression "*(uint *)(iVar8 + -0x51d0)" (* "*") (cast_expression "(uint *)(iVar8 + -0x51d0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x51d0)" (( "(") (binary_expression "iVar8 + -0x51d0" (identifier "iVar8") (+ "+") (number_literal "-0x51d0")) () ")"))))) (; ";")) (expression_statement "uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);" (assignment_expression "uStack_45c = *(undefined4 *)(iVar8 + -0x51cc)" (identifier "uStack_45c") (= "=") (pointer_expression "*(undefined4 *)(iVar8 + -0x51cc)" (* "*") (cast_expression "(undefined4 *)(iVar8 + -0x51cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x51cc)" (( "(") (binary_expression "iVar8 + -0x51cc" (identifier "iVar8") (+ "+") (number_literal "-0x51cc")) () ")"))))) (; ";")) (expression_statement "uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);" (assignment_expression "uStack_458 = *(undefined4 *)(iVar8 + -0x51c8)" (identifier "uStack_458") (= "=") (pointer_expression "*(undefined4 *)(iVar8 + -0x51c8)" (* "*") (cast_expression "(undefined4 *)(iVar8 + -0x51c8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x51c8)" (( "(") (binary_expression "iVar8 + -0x51c8" (identifier "iVar8") (+ "+") (number_literal "-0x51c8")) () ")"))))) (; ";")) (expression_statement "uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);" (assignment_expression "uStack_454 = *(undefined2 *)(iVar8 + -0x51c4)" (identifier "uStack_454") (= "=") (pointer_expression "*(undefined2 *)(iVar8 + -0x51c4)" (* "*") (cast_expression "(undefined2 *)(iVar8 + -0x51c4)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x51c4)" (( "(") (binary_expression "iVar8 + -0x51c4" (identifier "iVar8") (+ "+") (number_literal "-0x51c4")) () ")"))))) (; ";")) (if_statement "if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }" (if "if") (parenthesized_expression "(((uint)(pcStack_4b0 + -1) & 0xff) < 8)" (( "(") (binary_expression "((uint)(pcStack_4b0 + -1) & 0xff) < 8" (parenthesized_expression "((uint)(pcStack_4b0 + -1) & 0xff)" (( "(") (binary_expression "(uint)(pcStack_4b0 + -1) & 0xff" (call_expression "(uint)(pcStack_4b0 + -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcStack_4b0 + -1)" (( "(") (binary_expression "pcStack_4b0 + -1" (identifier "pcStack_4b0") (+ "+") (number_literal "-1")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "8")) () ")")) (compound_statement "{\n                    \n                    \n                      pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();\n                      return pcVar13;\n                    }" ({ "{") (expression_statement "pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))();" (assignment_expression "pcVar13 = (char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))()" (identifier "pcVar13") (= "=") (cast_expression "(char *)(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))()" (parenthesized_expression "(*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)))" (( "(") (pointer_expression "*(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8))" (* "*") (cast_expression "(code *)(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8))" (( "(") (binary_expression "puVar11 +\n                                                  (int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)" (identifier "puVar11") (+ "+") (cast_expression "(int)("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "("Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8)" (( "(") (binary_expression ""Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               ) + 8" (binary_expression ""Server requested password change" +\n                                                       *(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" (string_literal ""Server requested password change"" (" """) (string_content "Server requested password change") (" """)) (+ "+") (pointer_expression "*(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" (* "*") (cast_expression "(int *)(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4\n                                                               )" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60 +\n                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4" (binary_expression "*(int *)(puVar11 + 0x98560) +\n                                                                -0x4e60" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x4e60")) (+ "+") (binary_expression "((uint)(pcStack_4b0 + -1) & 0xff) * 4" (parenthesized_expression "((uint)(pcStack_4b0 + -1) & 0xff)" (( "(") (binary_expression "(uint)(pcStack_4b0 + -1) & 0xff" (call_expression "(uint)(pcStack_4b0 + -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcStack_4b0 + -1)" (( "(") (binary_expression "pcStack_4b0 + -1" (identifier "pcStack_4b0") (+ "+") (number_literal "-1")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "8")) () ")")))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pcVar13;" (return "return") (identifier "pcVar13") (; ";")) (} "}"))) (expression_statement "iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);" (assignment_expression "iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar11 + 0x9902c))(&uStack_460)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x9902c)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x9902c)" (* "*") (cast_expression "(code **)(puVar11 + 0x9902c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x9902c)" (( "(") (binary_expression "puVar11 + 0x9902c" (identifier "puVar11") (+ "+") (number_literal "0x9902c")) () ")"))))) () ")")) (argument_list "(&uStack_460)" (( "(") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100);" (call_expression "(**(code **)(puVar11 + 0x98f00))\n                              ((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100)" (parenthesized_expression "(**(code **)(puVar11 + 0x98f00))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x98f00)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x98f00)" (* "*") (cast_expression "(code **)(puVar11 + 0x98f00)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x98f00)" (( "(") (binary_expression "puVar11 + 0x98f00" (identifier "puVar11") (+ "+") (number_literal "0x98f00")) () ")"))))) () ")")) (argument_list "((int)&uStack_460 + iVar8,1,0xffffffff,\n                               *(int *)(puVar11 + 0x98560) + -0x5100)" (( "(") (binary_expression "(int)&uStack_460 + iVar8" (cast_expression "(int)&uStack_460" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460"))) (+ "+") (identifier "iVar8")) (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5100" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x5100")) () ")"))) (; ";")) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "pcVar12 = (char *)&uStack_460;" (assignment_expression "pcVar12 = (char *)&uStack_460" (identifier "pcVar12") (= "=") (cast_expression "(char *)&uStack_460" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }" (else "else") (compound_statement "{\n                  param_4 = 0;\n                  param_3 = (char *)0x1f40;\n                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);\n                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                  pcVar13 = (char *)0x1;\n                }" ({ "{") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000)" (identifier "pcVar12") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -21000)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -21000)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -21000" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-21000")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" (else "else") (if_statement "if (iVar8 == 4) {\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }\n            else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" (if "if") (parenthesized_expression "(iVar8 == 4)" (( "(") (binary_expression "iVar8 == 4" (identifier "iVar8") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n              param_4 = 0;\n              param_3 = (char *)0x1f40;\n              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);\n              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n              pcVar13 = (char *)0x1;\n            }" ({ "{") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c)" (identifier "pcVar12") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x509c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x509c)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x509c" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x509c")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" (else "else") (if_statement "if (iVar8 == 5) {\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }\n            else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" (if "if") (parenthesized_expression "(iVar8 == 5)" (( "(") (binary_expression "iVar8 == 5" (identifier "iVar8") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);\n              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);\n              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }\n            }" ({ "{") (expression_statement "unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);" (assignment_expression "unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" (identifier "unaff_s3") (= "=") (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10)" (identifier "conf_get_str") (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x10)" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x74)" (( "(") (binary_expression "iVar2 + 0x74" (identifier "iVar2") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);" (assignment_expression "unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" (identifier "unaff_s4") (= "=") (cast_expression "(char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11)" (identifier "conf_get_str") (argument_list "(*(undefined4 *)(iVar2 + 0x74),0x11)" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 0x74)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x74)" (( "(") (binary_expression "iVar2 + 0x74" (identifier "iVar2") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (number_literal "0x11") () ")"))))) (; ";")) (if_statement "if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }\n              else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }" (if "if") (parenthesized_expression "((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0'))" (( "(") (binary_expression "(*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')" (parenthesized_expression "(*unaff_s3 == '\0')" (( "(") (binary_expression "*unaff_s3 == '\0'" (pointer_expression "*unaff_s3" (* "*") (identifier "unaff_s3")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_4 = 0, *unaff_s4 == '\0')" (( "(") (comma_expression "param_4 = 0, *unaff_s4 == '\0'" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (, ",") (binary_expression "*unaff_s4 == '\0'" (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n                param_3 = (char *)0x1f40;\n                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);\n                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n                pcVar13 = (char *)0x1;\n              }" ({ "{") (expression_statement "param_3 = (char *)0x1f40;" (assignment_expression "param_3 = (char *)0x1f40" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f40"))) (; ";")) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068)" (identifier "pcVar12") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5068)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5068)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5068" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x5068")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }" (else "else") (compound_statement "{\n                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);\n                unaff_s5 = 1;\n                pcVar5 = (char *)0x1;\n                if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }\n                if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }\n                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);\n                if (iVar8 < 1) {\n                  iVar8 = 1;\n                }\n                unaff_s6 = 0xff;\n                if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }\n                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);\n                uStack_460 = CONCAT13(1,uStack_460._1_3_);\n                param_4 = 0x1ff;\n                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);\n                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;\n                unaff_s3 = (char *)&uStack_460;\n                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);\n                param_3 = pcVar5 + unaff_s6 + 3;\n                pcVar12 = unaff_s3;\n                (**(code **)(**(int **)(iVar2 + 8) + 8))();\n                *(undefined4 *)(iVar2 + 0x44) = 7;\n                pcVar13 = (char *)0x1;\n                pcStack_4b0 = pcVar5;\n              }" ({ "{") (expression_statement "pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);" (assignment_expression "pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar11 + 0x9902c))(unaff_s3)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x9902c)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x9902c)" (* "*") (cast_expression "(code **)(puVar11 + 0x9902c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x9902c)" (( "(") (binary_expression "puVar11 + 0x9902c" (identifier "puVar11") (+ "+") (number_literal "0x9902c")) () ")"))))) () ")")) (argument_list "(unaff_s3)" (( "(") (identifier "unaff_s3") () ")"))))) (; ";")) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (0 < (int)pcVar13) {\n                  pcVar5 = pcVar13;\n                }" (if "if") (parenthesized_expression "(0 < (int)pcVar13)" (( "(") (binary_expression "0 < (int)pcVar13" (number_literal "0") (< "<") (cast_expression "(int)pcVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar13"))) () ")")) (compound_statement "{\n                  pcVar5 = pcVar13;\n                }" ({ "{") (expression_statement "pcVar5 = pcVar13;" (assignment_expression "pcVar5 = pcVar13" (identifier "pcVar5") (= "=") (identifier "pcVar13")) (; ";")) (} "}"))) (if_statement "if (0xff < (int)pcVar5) {\n                  pcVar5 = (char *)0xff;\n                }" (if "if") (parenthesized_expression "(0xff < (int)pcVar5)" (( "(") (binary_expression "0xff < (int)pcVar5" (number_literal "0xff") (< "<") (cast_expression "(int)pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar5"))) () ")")) (compound_statement "{\n                  pcVar5 = (char *)0xff;\n                }" ({ "{") (expression_statement "pcVar5 = (char *)0xff;" (assignment_expression "pcVar5 = (char *)0xff" (identifier "pcVar5") (= "=") (cast_expression "(char *)0xff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xff"))) (; ";")) (} "}"))) (expression_statement "iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);" (assignment_expression "iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar11 + 0x9902c))(unaff_s4)" (parenthesized_expression "(**(code **)(puVar11 + 0x9902c))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x9902c)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x9902c)" (* "*") (cast_expression "(code **)(puVar11 + 0x9902c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x9902c)" (( "(") (binary_expression "puVar11 + 0x9902c" (identifier "puVar11") (+ "+") (number_literal "0x9902c")) () ")"))))) () ")")) (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")")))) (; ";")) (if_statement "if (iVar8 < 1) {\n                  iVar8 = 1;\n                }" (if "if") (parenthesized_expression "(iVar8 < 1)" (( "(") (binary_expression "iVar8 < 1" (identifier "iVar8") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                  iVar8 = 1;\n                }" ({ "{") (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" (identifier "iVar8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "unaff_s6 = 0xff;" (assignment_expression "unaff_s6 = 0xff" (identifier "unaff_s6") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (iVar8 < 0x100) {\n                  unaff_s6 = iVar8;\n                }" (if "if") (parenthesized_expression "(iVar8 < 0x100)" (( "(") (binary_expression "iVar8 < 0x100" (identifier "iVar8") (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n                  unaff_s6 = iVar8;\n                }" ({ "{") (expression_statement "unaff_s6 = iVar8;" (assignment_expression "unaff_s6 = iVar8" (identifier "unaff_s6") (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (expression_statement "uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);" (assignment_expression "uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_)" (field_expression "uStack_460._1_3_" (identifier "uStack_460") (. ".") (field_identifier "_1_3_")) (= "=") (call_expression "CONCAT12((char)pcVar5,uStack_460._2_2_)" (identifier "CONCAT12") (argument_list "((char)pcVar5,uStack_460._2_2_)" (( "(") (cast_expression "(char)pcVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pcVar5")) (, ",") (field_expression "uStack_460._2_2_" (identifier "uStack_460") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "uStack_460 = CONCAT13(1,uStack_460._1_3_);" (assignment_expression "uStack_460 = CONCAT13(1,uStack_460._1_3_)" (identifier "uStack_460") (= "=") (call_expression "CONCAT13(1,uStack_460._1_3_)" (identifier "CONCAT13") (argument_list "(1,uStack_460._1_3_)" (( "(") (number_literal "1") (, ",") (field_expression "uStack_460._1_3_" (identifier "uStack_460") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "param_4 = 0x1ff;" (assignment_expression "param_4 = 0x1ff" (identifier "param_4") (= "=") (number_literal "0x1ff")) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);" (call_expression "(**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5)" (parenthesized_expression "(**(code **)(puVar11 + 0x9905c))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x9905c)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x9905c)" (* "*") (cast_expression "(code **)(puVar11 + 0x9905c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x9905c)" (( "(") (binary_expression "puVar11 + 0x9905c" (identifier "puVar11") (+ "+") (number_literal "0x9905c")) () ")"))))) () ")")) (argument_list "((int)&uStack_460 + 2,unaff_s3,pcVar5)" (( "(") (binary_expression "(int)&uStack_460 + 2" (cast_expression "(int)&uStack_460" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460"))) (+ "+") (number_literal "2")) (, ",") (identifier "unaff_s3") (, ",") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;" (assignment_expression "pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6" (subscript_expression "pcVar5[(int)&uStack_460 + 2]" (identifier "pcVar5") ([ "[") (binary_expression "(int)&uStack_460 + 2" (cast_expression "(int)&uStack_460" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460"))) (+ "+") (number_literal "2")) (] "]")) (= "=") (cast_expression "(char)unaff_s6" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "unaff_s6"))) (; ";")) (expression_statement "unaff_s3 = (char *)&uStack_460;" (assignment_expression "unaff_s3 = (char *)&uStack_460" (identifier "unaff_s3") (= "=") (cast_expression "(char *)&uStack_460" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_460" (& "&") (identifier "uStack_460")))) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);" (call_expression "(**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6)" (parenthesized_expression "(**(code **)(puVar11 + 0x990e8))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x990e8)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x990e8)" (* "*") (cast_expression "(code **)(puVar11 + 0x990e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x990e8)" (( "(") (binary_expression "puVar11 + 0x990e8" (identifier "puVar11") (+ "+") (number_literal "0x990e8")) () ")"))))) () ")")) (argument_list "(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6)" (( "(") (binary_expression "unaff_s3 + (int)(pcVar5 + 3)" (identifier "unaff_s3") (+ "+") (cast_expression "(int)(pcVar5 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar5 + 3)" (( "(") (binary_expression "pcVar5 + 3" (identifier "pcVar5") (+ "+") (number_literal "3")) () ")")))) (, ",") (identifier "unaff_s4") (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "param_3 = pcVar5 + unaff_s6 + 3;" (assignment_expression "param_3 = pcVar5 + unaff_s6 + 3" (identifier "param_3") (= "=") (binary_expression "pcVar5 + unaff_s6 + 3" (binary_expression "pcVar5 + unaff_s6" (identifier "pcVar5") (+ "+") (identifier "unaff_s6")) (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pcVar12 = unaff_s3;" (assignment_expression "pcVar12 = unaff_s3" (identifier "pcVar12") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 8) + 8))();" (call_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 8) + 8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 8) + 8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 8) + 8)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 8) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 8) + 8)" (( "(") (binary_expression "**(int **)(iVar2 + 8) + 8" (pointer_expression "**(int **)(iVar2 + 8)" (* "*") (pointer_expression "*(int **)(iVar2 + 8)" (* "*") (cast_expression "(int **)(iVar2 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x44) = 7;" (assignment_expression "*(undefined4 *)(iVar2 + 0x44) = 7" (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" (identifier "pcStack_4b0") (= "=") (identifier "pcVar5")) (; ";")) (} "}")))) (} "}")) (else_clause "else if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" (else "else") (if_statement "if ((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;" (if "if") (parenthesized_expression "((iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0))" (( "(") (binary_expression "(iVar8 != 6) ||\n                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)" (parenthesized_expression "(iVar8 != 6)" (( "(") (binary_expression "iVar8 != 6" (identifier "iVar8") (!= "!=") (number_literal "6")) () ")")) (|| "||") (parenthesized_expression "(pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0)" (( "(") (comma_expression "pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,\n                    pcVar13 == (char *)0x0" (assignment_expression "pcVar13 = (char *)proxy_socks5_selectchap(iVar2)" (identifier "pcVar13") (= "=") (cast_expression "(char *)proxy_socks5_selectchap(iVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "proxy_socks5_selectchap(iVar2)" (identifier "proxy_socks5_selectchap") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))))) (, ",") (comma_expression "pcVar12 = param_2,\n                    pcVar13 == (char *)0x0" (assignment_expression "pcVar12 = param_2" (identifier "pcVar12") (= "=") (identifier "param_2")) (, ",") (binary_expression "pcVar13 == (char *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (goto_statement "goto LAB_00025ec0;" (goto "goto") (statement_identifier "LAB_00025ec0") (; ";"))))))))))) (} "}")))))) (} "}")))) (} "}")) (else_clause "else {\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }" (else "else") (compound_statement "{\nLAB_00025ec0:\n        param_4 = 0;\n        param_3 = (char *)0x1f41;\n        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);\n        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();\n        pcVar13 = (char *)0x1;\n        pcStack_4b0 = pcVar5;\n      }" ({ "{") (labeled_statement "LAB_00025ec0:\n        param_4 = 0;" (statement_identifier "LAB_00025ec0") (: ":") (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" (identifier "param_4") (= "=") (number_literal "0")) (; ";"))) (expression_statement "param_3 = (char *)0x1f41;" (assignment_expression "param_3 = (char *)0x1f41" (identifier "param_3") (= "=") (cast_expression "(char *)0x1f41" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1f41"))) (; ";")) (expression_statement "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);" (assignment_expression "pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014)" (identifier "pcVar12") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0x98560) + -0x5014)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x98560) + -0x5014)" (( "(") (binary_expression "*(int *)(puVar11 + 0x98560) + -0x5014" (pointer_expression "*(int *)(puVar11 + 0x98560)" (* "*") (cast_expression "(int *)(puVar11 + 0x98560)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x98560)" (( "(") (binary_expression "puVar11 + 0x98560" (identifier "puVar11") (+ "+") (number_literal "0x98560")) () ")")))) (+ "+") (number_literal "-0x5014")) () ")")))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar2 + 0xc) + 4))();" (call_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))()" (parenthesized_expression "(**(code **)(**(int **)(iVar2 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar2 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar2 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar2 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar2 + 0xc) + 4" (pointer_expression "**(int **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar13 = (char *)0x1;" (assignment_expression "pcVar13 = (char *)0x1" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pcStack_4b0 = pcVar5;" (assignment_expression "pcStack_4b0 = pcVar5" (identifier "pcStack_4b0") (= "=") (identifier "pcVar5")) (; ";")) (} "}")))) (} "}")))))))) (} "}")))) (labeled_statement "LAB_00025ff8:\n  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }" (statement_identifier "LAB_00025ff8") (: ":") (if_statement "if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {\n    return pcVar13;\n  }" (if "if") (parenthesized_expression "(iStack_25c == **(int **)(puVar11 + 0x990e4))" (( "(") (binary_expression "iStack_25c == **(int **)(puVar11 + 0x990e4)" (identifier "iStack_25c") (== "==") (pointer_expression "**(int **)(puVar11 + 0x990e4)" (* "*") (pointer_expression "*(int **)(puVar11 + 0x990e4)" (* "*") (cast_expression "(int **)(puVar11 + 0x990e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x990e4)" (( "(") (binary_expression "puVar11 + 0x990e4" (identifier "puVar11") (+ "+") (number_literal "0x990e4")) () ")")))))) () ")")) (compound_statement "{\n    return pcVar13;\n  }" ({ "{") (return_statement "return pcVar13;" (return "return") (identifier "pcVar13") (; ";")) (} "}")))) (expression_statement "pcVar19 = *(code **)(puVar11 + 0x990bc);" (assignment_expression "pcVar19 = *(code **)(puVar11 + 0x990bc)" (identifier "pcVar19") (= "=") (pointer_expression "*(code **)(puVar11 + 0x990bc)" (* "*") (cast_expression "(code **)(puVar11 + 0x990bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x990bc)" (( "(") (binary_expression "puVar11 + 0x990bc" (identifier "puVar11") (+ "+") (number_literal "0x990bc")) () ")"))))) (; ";")) (expression_statement "iVar8 = iStack_25c;" (assignment_expression "iVar8 = iStack_25c" (identifier "iVar8") (= "=") (identifier "iStack_25c")) (; ";")) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar20 = pcVar19 + 0x9fa7c;" (assignment_expression "pcVar20 = pcVar19 + 0x9fa7c" (identifier "pcVar20") (= "=") (binary_expression "pcVar19 + 0x9fa7c" (identifier "pcVar19") (+ "+") (number_literal "0x9fa7c"))) (; ";")) (expression_statement "iStack_4bc = **(int **)(pcVar19 + 0x98638);" (assignment_expression "iStack_4bc = **(int **)(pcVar19 + 0x98638)" (identifier "iStack_4bc") (= "=") (pointer_expression "**(int **)(pcVar19 + 0x98638)" (* "*") (pointer_expression "*(int **)(pcVar19 + 0x98638)" (* "*") (cast_expression "(int **)(pcVar19 + 0x98638)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x98638)" (( "(") (binary_expression "pcVar19 + 0x98638" (identifier "pcVar19") (+ "+") (number_literal "0x98638")) () ")")))))) (; ";")) (expression_statement "iVar14 = param_4;" (assignment_expression "iVar14 = param_4" (identifier "iVar14") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iStack_4b8 = iVar2;" (assignment_expression "iStack_4b8 = iVar2" (identifier "iStack_4b8") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "pcStack_4b4 = pcVar13;" (assignment_expression "pcStack_4b4 = pcVar13" (identifier "pcStack_4b4") (= "=") (identifier "pcVar13")) (; ";")) (expression_statement "pcStack_4ac = unaff_s3;" (assignment_expression "pcStack_4ac = unaff_s3" (identifier "pcStack_4ac") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "pcStack_4a8 = unaff_s4;" (assignment_expression "pcStack_4a8 = unaff_s4" (identifier "pcStack_4a8") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "uStack_4a4 = unaff_s5;" (assignment_expression "uStack_4a4 = unaff_s5" (identifier "uStack_4a4") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "iStack_4a0 = unaff_s6;" (assignment_expression "iStack_4a0 = unaff_s6" (identifier "iStack_4a0") (= "=") (identifier "unaff_s6")) (; ";")) (if_statement "if (iVar8 == 0) {\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }\n  else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar13 = (char *)0xc;\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }\n  }" ({ "{") (expression_statement "pcVar13 = (char *)0xc;" (assignment_expression "pcVar13 = (char *)0xc" (identifier "pcVar13") (= "=") (cast_expression "(char *)0xc" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "iVar2 = conf_get_int(param_4,0xc);" (assignment_expression "iVar2 = conf_get_int(param_4,0xc)" (identifier "iVar2") (= "=") (call_expression "conf_get_int(param_4,0xc)" (identifier "conf_get_int") (argument_list "(param_4,0xc)" (( "(") (identifier "param_4") (, ",") (number_literal "0xc") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      iVar2 = 0;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }" ({ "{") (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar19 + 0x97c8c))(pcVar12)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c8c))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x97c8c)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x97c8c)" (* "*") (cast_expression "(code **)(pcVar19 + 0x97c8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x97c8c)" (( "(") (binary_expression "pcVar19 + 0x97c8c" (identifier "pcVar19") (+ "+") (number_literal "0x97c8c")) () ")"))))) () ")")) (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\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"))) (; ";")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar2 = 0;\n    }" (else "else") (compound_statement "{\n      iVar2 = 0;\n    }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }" (else "else") (compound_statement "{\n    iVar2 = (**(code **)(pcVar19 + 0x97c88))();\n    pcVar13 = (char *)0xc;\n    if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }\n    iVar2 = conf_get_int(param_4,0xc);\n    if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }\n    param_3 = &DAT_00000040;\n    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);\n    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);\n  }" ({ "{") (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c88))();" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c88))()" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar19 + 0x97c88))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c88))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x97c88)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x97c88)" (* "*") (cast_expression "(code **)(pcVar19 + 0x97c88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x97c88)" (( "(") (binary_expression "pcVar19 + 0x97c88" (identifier "pcVar19") (+ "+") (number_literal "0x97c88")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar13 = (char *)0xc;" (assignment_expression "pcVar13 = (char *)0xc" (identifier "pcVar13") (= "=") (cast_expression "(char *)0xc" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc"))) (; ";")) (if_statement "if (iVar2 != 0) {\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar5 = (char *)0x0;\n      goto LAB_00026c80;\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"))) (; ";")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";")) (} "}"))) (expression_statement "iVar2 = conf_get_int(param_4,0xc);" (assignment_expression "iVar2 = conf_get_int(param_4,0xc)" (identifier "iVar2") (= "=") (call_expression "conf_get_int(param_4,0xc)" (identifier "conf_get_int") (argument_list "(param_4,0xc)" (( "(") (identifier "param_4") (, ",") (number_literal "0xc") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);\n      pcVar5 = (char *)0x0;\n      if (iVar2 != 0) goto LAB_00026c80;\n      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);\n      param_3 = &DAT_00000040;\n      if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }\n    }" ({ "{") (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar19 + 0x97c8c))(pcVar12)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c8c))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x97c8c)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x97c8c)" (* "*") (cast_expression "(code **)(pcVar19 + 0x97c8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x97c8c)" (( "(") (binary_expression "pcVar19 + 0x97c8c" (identifier "pcVar19") (+ "+") (number_literal "0x97c8c")) () ")"))))) () ")")) (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (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"))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_00026c80;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";"))) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar19 + 0x97c90))(iVar8)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97c90))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x97c90)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x97c90)" (* "*") (cast_expression "(code **)(pcVar19 + 0x97c90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x97c90)" (( "(") (binary_expression "pcVar19 + 0x97c90" (identifier "pcVar19") (+ "+") (number_literal "0x97c90")) () ")"))))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "param_3 = &DAT_00000040;" (assignment_expression "param_3 = &DAT_00000040" (identifier "param_3") (= "=") (pointer_expression "&DAT_00000040" (& "&") (identifier "DAT_00000040"))) (; ";")) (if_statement "if (iVar2 != 0) {\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar5 = (char *)0x0;\n        goto LAB_00026c80;\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"))) (; ";")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";")) (} "}"))) (} "}"))) (expression_statement "param_3 = &DAT_00000040;" (assignment_expression "param_3 = &DAT_00000040" (identifier "param_3") (= "=") (pointer_expression "&DAT_00000040" (& "&") (identifier "DAT_00000040"))) (; ";")) (expression_statement "(**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);" (call_expression "(**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97abc))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x97abc)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x97abc)" (* "*") (cast_expression "(code **)(pcVar19 + 0x97abc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x97abc)" (( "(") (binary_expression "pcVar19 + 0x97abc" (identifier "pcVar19") (+ "+") (number_literal "0x97abc")) () ")"))))) () ")")) (argument_list "(iVar8,auStack_4fc)" (( "(") (identifier "iVar8") (, ",") (identifier "auStack_4fc") () ")"))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);" (assignment_expression "iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar19 + 0x98580))(auStack_4fc)" (parenthesized_expression "(**(code **)(pcVar19 + 0x98580))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x98580)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x98580)" (* "*") (cast_expression "(code **)(pcVar19 + 0x98580)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x98580)" (( "(") (binary_expression "pcVar19 + 0x98580" (identifier "pcVar19") (+ "+") (number_literal "0x98580")) () ")"))))) () ")")) (argument_list "(auStack_4fc)" (( "(") (identifier "auStack_4fc") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar19 + 0x98580))(pcVar12)" (parenthesized_expression "(**(code **)(pcVar19 + 0x98580))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x98580)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x98580)" (* "*") (cast_expression "(code **)(pcVar19 + 0x98580)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x98580)" (( "(") (binary_expression "pcVar19 + 0x98580" (identifier "pcVar19") (+ "+") (number_literal "0x98580")) () ")"))))) () ")")) (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (expression_statement "pcVar13 = (char *)0xa;" (assignment_expression "pcVar13 = (char *)0xa" (identifier "pcVar13") (= "=") (cast_expression "(char *)0xa" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) (; ";")) (expression_statement "iVar4 = conf_get_str(param_4,10);" (assignment_expression "iVar4 = conf_get_str(param_4,10)" (identifier "iVar4") (= "=") (call_expression "conf_get_str(param_4,10)" (identifier "conf_get_str") (argument_list "(param_4,10)" (( "(") (identifier "param_4") (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    uVar16 = (uint)*(char *)(iVar4 + iVar15);\n    if (uVar16 == 0) break;\n    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();\n    iVar17 = *piVar6;\n    iVar7 = iVar15;\n    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }\n    if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }\n    bVar1 = *(byte *)(iVar4 + iVar7);\n    iVar15 = iVar7;\n    while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }\n    if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }\n    bVar1 = *(byte *)(iVar4 + iVar15);\n    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }\n  }" ({ "{") (expression_statement "uVar16 = (uint)*(char *)(iVar4 + iVar15);" (assignment_expression "uVar16 = (uint)*(char *)(iVar4 + iVar15)" (identifier "uVar16") (= "=") (binary_expression "(uint)*(char *)(iVar4 + iVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(char *)(iVar4 + iVar15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar15)" (( "(") (binary_expression "iVar4 + iVar15" (identifier "iVar4") (+ "+") (identifier "iVar15")) () ")"))))) (; ";")) (if_statement "if (uVar16 == 0) break;" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();" (assignment_expression "piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))()" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(pcVar19 + 0x98460))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar19 + 0x98460))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x98460))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x98460)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x98460)" (* "*") (cast_expression "(code **)(pcVar19 + 0x98460)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x98460)" (( "(") (binary_expression "pcVar19 + 0x98460" (identifier "pcVar19") (+ "+") (number_literal "0x98460")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" (identifier "iVar17") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "iVar7 = iVar15;" (assignment_expression "iVar7 = iVar15" (identifier "iVar7") (= "=") (identifier "iVar15")) (; ";")) (while_statement "while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }" (while "while") (parenthesized_expression "((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c)))" (( "(") (parenthesized_expression "(pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))" (( "(") (comma_expression "pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),\n           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c)" (assignment_expression "pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15)" (identifier "pcVar18") (= "=") (binary_expression "(char *)(iVar4 + iVar15) + (iVar7 - iVar15)" (cast_expression "(char *)(iVar4 + iVar15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar15)" (( "(") (binary_expression "iVar4 + iVar15" (identifier "iVar4") (+ "+") (identifier "iVar15")) () ")"))) (+ "+") (parenthesized_expression "(iVar7 - iVar15)" (( "(") (binary_expression "iVar7 - iVar15" (identifier "iVar7") (- "-") (identifier "iVar15")) () ")")))) (, ",") (binary_expression "(*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c)" (binary_expression "(*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + (uVar16 & 0xff) * 2)" (* "*") (cast_expression "(ushort *)(iVar17 + (uVar16 & 0xff) * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + (uVar16 & 0xff) * 2)" (( "(") (binary_expression "iVar17 + (uVar16 & 0xff) * 2" (identifier "iVar17") (+ "+") (binary_expression "(uVar16 & 0xff) * 2" (parenthesized_expression "(uVar16 & 0xff)" (( "(") (binary_expression "uVar16 & 0xff" (identifier "uVar16") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(uVar16 == 0x2c)" (( "(") (binary_expression "uVar16 == 0x2c" (identifier "uVar16") (== "==") (number_literal "0x2c")) () ")")))) () ")")) () ")")) (compound_statement "{\n      iVar7 = iVar7 + 1;\n      uVar16 = (uint)*(char *)(iVar4 + iVar7);\n      if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }\n    }" ({ "{") (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar16 = (uint)*(char *)(iVar4 + iVar7);" (assignment_expression "uVar16 = (uint)*(char *)(iVar4 + iVar7)" (identifier "uVar16") (= "=") (binary_expression "(uint)*(char *)(iVar4 + iVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(char *)(iVar4 + iVar7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar7)" (( "(") (binary_expression "iVar4 + iVar7" (identifier "iVar4") (+ "+") (identifier "iVar7")) () ")"))))) (; ";")) (if_statement "if (uVar16 == 0) {\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar5 = (char *)0x1;\n        goto LAB_00026c80;\n      }" ({ "{") (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";")) (} "}"))) (} "}"))) (if_statement "if (uVar16 == 0) {\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar5 = (char *)0x1;\n      goto LAB_00026c80;\n    }" ({ "{") (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";")) (} "}"))) (expression_statement "bVar1 = *(byte *)(iVar4 + iVar7);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar7)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar4 + iVar7)" (* "*") (cast_expression "(byte *)(iVar4 + iVar7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar7)" (( "(") (binary_expression "iVar4 + iVar7" (identifier "iVar4") (+ "+") (identifier "iVar7")) () ")"))))) (; ";")) (expression_statement "iVar15 = iVar7;" (assignment_expression "iVar15 = iVar7" (identifier "iVar15") (= "=") (identifier "iVar7")) (; ";")) (while_statement "while ((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))) {\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }" (while "while") (parenthesized_expression "((bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)))))" (( "(") (parenthesized_expression "(bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))))" (( "(") (binary_expression "bVar1 != 0 &&\n           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)))" (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)))" (( "(") (parenthesized_expression "(((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a))" (( "(") (binary_expression "((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))\n            || (bVar1 == 0x2a)" (parenthesized_expression "((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))" (( "(") (binary_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2)" (binary_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800)" (( "(") (binary_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800" (pointer_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2)" (* "*") (cast_expression "(ushort *)(iVar17 + (uint)bVar1 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + (uint)bVar1 * 2)" (( "(") (binary_expression "iVar17 + (uint)bVar1 * 2" (identifier "iVar17") (+ "+") (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x800")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((bVar1 - 0x2d & 0xff) < 2)" (( "(") (binary_expression "(bVar1 - 0x2d & 0xff) < 2" (parenthesized_expression "(bVar1 - 0x2d & 0xff)" (( "(") (binary_expression "bVar1 - 0x2d & 0xff" (binary_expression "bVar1 - 0x2d" (identifier "bVar1") (- "-") (number_literal "0x2d")) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "2")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(bVar1 == 0x2a)" (( "(") (binary_expression "bVar1 == 0x2a" (identifier "bVar1") (== "==") (number_literal "0x2a")) () ")"))) () ")")) () ")"))) () ")")) () ")")) (compound_statement "{\n      iVar15 = iVar15 + 1;\n      bVar1 = *(byte *)(iVar4 + iVar15);\n    }" ({ "{") (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *(byte *)(iVar4 + iVar15);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar15)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar4 + iVar15)" (* "*") (cast_expression "(byte *)(iVar4 + iVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar15)" (( "(") (binary_expression "iVar4 + iVar15" (identifier "iVar4") (+ "+") (identifier "iVar15")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (uVar16 == 0x2a) {\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }\n    else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }" (if "if") (parenthesized_expression "(uVar16 == 0x2a)" (( "(") (binary_expression "uVar16 == 0x2a" (identifier "uVar16") (== "==") (number_literal "0x2a")) () ")")) (compound_statement "{\n      if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n      param_3 = (char *)((iVar15 - iVar7) + -1);\n      pcVar18 = (char *)(iVar4 + iVar7 + 1);\n      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);\n      if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }\n    }" ({ "{") (if_statement "if (iVar8 != 0) {\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        pcVar13 = (char *)(iVar4 + iVar7 + 1);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" ({ "{") (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" (identifier "param_3") (= "=") (cast_expression "(char *)((iVar15 - iVar7) + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar15 - iVar7) + -1)" (( "(") (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" (( "(") (binary_expression "iVar15 - iVar7" (identifier "iVar15") (- "-") (identifier "iVar7")) () ")")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pcVar13 = (char *)(iVar4 + iVar7 + 1);" (assignment_expression "pcVar13 = (char *)(iVar4 + iVar7 + 1)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(iVar4 + iVar7 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar7 + 1)" (( "(") (binary_expression "iVar4 + iVar7 + 1" (binary_expression "iVar4 + iVar7" (identifier "iVar4") (+ "+") (identifier "iVar7")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar19 + 0x9852c))\n                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x9852c)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x9852c)" (* "*") (cast_expression "(code **)(pcVar19 + 0x9852c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x9852c)" (( "(") (binary_expression "pcVar19 + 0x9852c" (identifier "pcVar19") (+ "+") (number_literal "0x9852c")) () ")"))))) () ")")) (argument_list "(auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13)" (( "(") (binary_expression "auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7))" (identifier "auStack_4fc") (+ "+") (parenthesized_expression "((iVar2 + 1) - (iVar15 - iVar7))" (( "(") (binary_expression "(iVar2 + 1) - (iVar15 - iVar7)" (parenthesized_expression "(iVar2 + 1)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) () ")")) (- "-") (parenthesized_expression "(iVar15 - iVar7)" (( "(") (binary_expression "iVar15 - iVar7" (identifier "iVar15") (- "-") (identifier "iVar7")) () ")"))) () ")"))) (, ",") (identifier "pcVar13") () ")"))))) (; ";")) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00026c80;" (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"))) () ")")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";"))) (} "}"))) (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" (identifier "param_3") (= "=") (cast_expression "(char *)((iVar15 - iVar7) + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar15 - iVar7) + -1)" (( "(") (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" (( "(") (binary_expression "iVar15 - iVar7" (identifier "iVar15") (- "-") (identifier "iVar7")) () ")")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pcVar18 = (char *)(iVar4 + iVar7 + 1);" (assignment_expression "pcVar18 = (char *)(iVar4 + iVar7 + 1)" (identifier "pcVar18") (= "=") (cast_expression "(char *)(iVar4 + iVar7 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar7 + 1)" (( "(") (binary_expression "iVar4 + iVar7 + 1" (binary_expression "iVar4 + iVar7" (identifier "iVar4") (+ "+") (identifier "iVar7")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);" (assignment_expression "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x9852c)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x9852c)" (* "*") (cast_expression "(code **)(pcVar19 + 0x9852c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x9852c)" (( "(") (binary_expression "pcVar19 + 0x9852c" (identifier "pcVar19") (+ "+") (number_literal "0x9852c")) () ")"))))) () ")")) (argument_list "(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18)" (( "(") (binary_expression "pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7))" (identifier "pcVar12") (+ "+") (parenthesized_expression "((iVar3 + 1) - (iVar15 - iVar7))" (( "(") (binary_expression "(iVar3 + 1) - (iVar15 - iVar7)" (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")) (- "-") (parenthesized_expression "(iVar15 - iVar7)" (( "(") (binary_expression "iVar15 - iVar7" (identifier "iVar15") (- "-") (identifier "iVar7")) () ")"))) () ")"))) (, ",") (identifier "pcVar18") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar5 = (char *)0x0;\n        pcVar13 = pcVar18;\n        goto LAB_00026c80;\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 "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" (identifier "pcVar13") (= "=") (identifier "pcVar18")) (; ";")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }" (else "else") (compound_statement "{\n      pcVar13 = pcVar18;\n      if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }\n    }" ({ "{") (expression_statement "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" (identifier "pcVar13") (= "=") (identifier "pcVar18")) (; ";")) (if_statement "if (*(char *)(iVar4 + iVar15 + -1) == '*') {\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }\n      else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + iVar15 + -1) == '*')" (( "(") (binary_expression "*(char *)(iVar4 + iVar15 + -1) == '*'" (pointer_expression "*(char *)(iVar4 + iVar15 + -1)" (* "*") (cast_expression "(char *)(iVar4 + iVar15 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar15 + -1)" (( "(") (binary_expression "iVar4 + iVar15 + -1" (binary_expression "iVar4 + iVar15" (identifier "iVar4") (+ "+") (identifier "iVar15")) (+ "+") (number_literal "-1")) () ")")))) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n        if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }\n        param_3 = (char *)((iVar15 - iVar7) + -1);\n        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }\n      }" ({ "{") (if_statement "if (iVar8 != 0) {\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          param_3 = (char *)((iVar15 - iVar7) + -1);\n          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);\n          if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n        }" ({ "{") (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" (identifier "param_3") (= "=") (cast_expression "(char *)((iVar15 - iVar7) + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar15 - iVar7) + -1)" (( "(") (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" (( "(") (binary_expression "iVar15 - iVar7" (identifier "iVar15") (- "-") (identifier "iVar7")) () ")")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x9852c)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x9852c)" (* "*") (cast_expression "(code **)(pcVar19 + 0x9852c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x9852c)" (( "(") (binary_expression "pcVar19 + 0x9852c" (identifier "pcVar19") (+ "+") (number_literal "0x9852c")) () ")"))))) () ")")) (argument_list "(auStack_4fc,pcVar18)" (( "(") (identifier "auStack_4fc") (, ",") (identifier "pcVar18") () ")"))))) (; ";")) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00026c80;" (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"))) () ")")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";"))) (} "}"))) (expression_statement "param_3 = (char *)((iVar15 - iVar7) + -1);" (assignment_expression "param_3 = (char *)((iVar15 - iVar7) + -1)" (identifier "param_3") (= "=") (cast_expression "(char *)((iVar15 - iVar7) + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar15 - iVar7) + -1)" (( "(") (binary_expression "(iVar15 - iVar7) + -1" (parenthesized_expression "(iVar15 - iVar7)" (( "(") (binary_expression "iVar15 - iVar7" (identifier "iVar15") (- "-") (identifier "iVar7")) () ")")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);" (assignment_expression "iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x9852c)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x9852c)" (* "*") (cast_expression "(code **)(pcVar19 + 0x9852c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x9852c)" (( "(") (binary_expression "pcVar19 + 0x9852c" (identifier "pcVar19") (+ "+") (number_literal "0x9852c")) () ")"))))) () ")")) (argument_list "(pcVar12,pcVar18)" (( "(") (identifier "pcVar12") (, ",") (identifier "pcVar18") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar5 = (char *)0x0;\n          pcVar13 = pcVar18;\n          goto LAB_00026c80;\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 "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" (identifier "pcVar13") (= "=") (identifier "pcVar18")) (; ";")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" (else "else") (compound_statement "{\n        param_3 = (char *)(iVar15 - iVar7);\n        if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;\n        param_3 = (char *)(iVar15 - iVar7);\n        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);\n        pcVar13 = pcVar18;\n        if (pcVar5 == (char *)0x0) goto LAB_00026c80;\n      }" ({ "{") (expression_statement "param_3 = (char *)(iVar15 - iVar7);" (assignment_expression "param_3 = (char *)(iVar15 - iVar7)" (identifier "param_3") (= "=") (cast_expression "(char *)(iVar15 - iVar7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 - iVar7)" (( "(") (binary_expression "iVar15 - iVar7" (identifier "iVar15") (- "-") (identifier "iVar7")) () ")")))) (; ";")) (if_statement "if ((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)) goto LAB_00026c80;" (if "if") (parenthesized_expression "((iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0))" (( "(") (binary_expression "(iVar8 != 0) &&\n           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)" (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0)" (( "(") (comma_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),\n           pcVar5 == (char *)0x0" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x9852c)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x9852c)" (* "*") (cast_expression "(code **)(pcVar19 + 0x9852c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x9852c)" (( "(") (binary_expression "pcVar19 + 0x9852c" (identifier "pcVar19") (+ "+") (number_literal "0x9852c")) () ")"))))) () ")")) (argument_list "(auStack_4fc,pcVar18)" (( "(") (identifier "auStack_4fc") (, ",") (identifier "pcVar18") () ")"))))) (, ",") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";"))) (expression_statement "param_3 = (char *)(iVar15 - iVar7);" (assignment_expression "param_3 = (char *)(iVar15 - iVar7)" (identifier "param_3") (= "=") (cast_expression "(char *)(iVar15 - iVar7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 - iVar7)" (( "(") (binary_expression "iVar15 - iVar7" (identifier "iVar15") (- "-") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18)" (parenthesized_expression "(**(code **)(pcVar19 + 0x9852c))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x9852c)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x9852c)" (* "*") (cast_expression "(code **)(pcVar19 + 0x9852c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x9852c)" (( "(") (binary_expression "pcVar19 + 0x9852c" (identifier "pcVar19") (+ "+") (number_literal "0x9852c")) () ")"))))) () ")")) (argument_list "(pcVar12,pcVar18)" (( "(") (identifier "pcVar12") (, ",") (identifier "pcVar18") () ")"))))) (; ";")) (expression_statement "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" (identifier "pcVar13") (= "=") (identifier "pcVar18")) (; ";")) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00026c80;" (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"))) () ")")) (goto_statement "goto LAB_00026c80;" (goto "goto") (statement_identifier "LAB_00026c80") (; ";"))) (} "}")))) (} "}")))) (expression_statement "bVar1 = *(byte *)(iVar4 + iVar15);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar15)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar4 + iVar15)" (* "*") (cast_expression "(byte *)(iVar4 + iVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar15)" (( "(") (binary_expression "iVar4 + iVar15" (identifier "iVar4") (+ "+") (identifier "iVar15")) () ")"))))) (; ";")) (while_statement "while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))) {\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }" (while "while") (parenthesized_expression "(((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c)))" (( "(") (parenthesized_expression "((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c))" (( "(") (binary_expression "(pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))\n           && (bVar1 != 0x2c)" (parenthesized_expression "(pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))" (( "(") (comma_expression "pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0)" (assignment_expression "pcVar13 = pcVar18" (identifier "pcVar13") (= "=") (identifier "pcVar18")) (, ",") (binary_expression "bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0)" (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + (uint)bVar1 * 2)" (* "*") (cast_expression "(ushort *)(iVar17 + (uint)bVar1 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + (uint)bVar1 * 2)" (( "(") (binary_expression "iVar17 + (uint)bVar1 * 2" (identifier "iVar17") (+ "+") (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(bVar1 != 0x2c)" (( "(") (binary_expression "bVar1 != 0x2c" (identifier "bVar1") (!= "!=") (number_literal "0x2c")) () ")"))) () ")")) () ")")) (compound_statement "{\n      bVar1 = *(byte *)(iVar4 + iVar15 + 1);\n      iVar15 = iVar15 + 1;\n    }" ({ "{") (expression_statement "bVar1 = *(byte *)(iVar4 + iVar15 + 1);" (assignment_expression "bVar1 = *(byte *)(iVar4 + iVar15 + 1)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar4 + iVar15 + 1)" (* "*") (cast_expression "(byte *)(iVar4 + iVar15 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar15 + 1)" (( "(") (binary_expression "iVar4 + iVar15 + 1" (binary_expression "iVar4 + iVar15" (identifier "iVar4") (+ "+") (identifier "iVar15")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar5 = (char *)0x1;" (assignment_expression "pcVar5 = (char *)0x1" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (labeled_statement "LAB_00026c80:\n  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }" (statement_identifier "LAB_00026c80") (: ":") (if_statement "if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {\n    return pcVar5;\n  }" (if "if") (parenthesized_expression "(iStack_4bc == **(int **)(pcVar19 + 0x98638))" (( "(") (binary_expression "iStack_4bc == **(int **)(pcVar19 + 0x98638)" (identifier "iStack_4bc") (== "==") (pointer_expression "**(int **)(pcVar19 + 0x98638)" (* "*") (pointer_expression "*(int **)(pcVar19 + 0x98638)" (* "*") (cast_expression "(int **)(pcVar19 + 0x98638)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x98638)" (( "(") (binary_expression "pcVar19 + 0x98638" (identifier "pcVar19") (+ "+") (number_literal "0x98638")) () ")")))))) () ")")) (compound_statement "{\n    return pcVar5;\n  }" ({ "{") (return_statement "return pcVar5;" (return "return") (identifier "pcVar5") (; ";")) (} "}")))) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x98610);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x98610)" (identifier "pcVar19") (= "=") (pointer_expression "*(code **)(pcVar19 + 0x98610)" (* "*") (cast_expression "(code **)(pcVar19 + 0x98610)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x98610)" (( "(") (binary_expression "pcVar19 + 0x98610" (identifier "pcVar19") (+ "+") (number_literal "0x98610")) () ")"))))) (; ";")) (expression_statement "iVar2 = iStack_4bc;" (assignment_expression "iVar2 = iStack_4bc" (identifier "iVar2") (= "=") (identifier "iStack_4bc")) (; ";")) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = conf_get_int(iVar14,0xd);" (assignment_expression "iVar8 = conf_get_int(iVar14,0xd)" (identifier "iVar8") (= "=") (call_expression "conf_get_int(iVar14,0xd)" (identifier "conf_get_int") (argument_list "(iVar14,0xd)" (( "(") (identifier "iVar14") (, ",") (number_literal "0xd") () ")")))) (; ";")) (if_statement "if (((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }\n  else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }" (if "if") (parenthesized_expression "(((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0))" (( "(") (binary_expression "((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||\n     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)" (parenthesized_expression "((iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1))))))" (( "(") (binary_expression "(iVar8 == 0) ||\n      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))" (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))" (( "(") (parenthesized_expression "(iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1))))" (( "(") (comma_expression "iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))" (assignment_expression "iVar8 = conf_get_int(iVar14,0xb)" (identifier "iVar8") (= "=") (call_expression "conf_get_int(iVar14,0xb)" (identifier "conf_get_int") (argument_list "(iVar14,0xb)" (( "(") (identifier "iVar14") (, ",") (number_literal "0xb") () ")")))) (, ",") (binary_expression "iVar8 != 0 &&\n       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))" (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))" (( "(") (parenthesized_expression "(iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1))" (( "(") (comma_expression "iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)" (assignment_expression "iVar8 = conf_get_int(iVar14,0xb)" (identifier "iVar8") (= "=") (call_expression "conf_get_int(iVar14,0xb)" (identifier "conf_get_int") (argument_list "(iVar14,0xb)" (( "(") (identifier "iVar14") (, ",") (number_literal "0xb") () ")")))) (, ",") (binary_expression "iVar8 != 2 ||\n        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)" (binary_expression "iVar8 != 2" (identifier "iVar8") (!= "!=") (number_literal "2")) (|| "||") (parenthesized_expression "(iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)" (( "(") (comma_expression "iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1" (assignment_expression "iVar8 = conf_get_int(iVar14,0xd)" (identifier "iVar8") (= "=") (call_expression "conf_get_int(iVar14,0xd)" (identifier "conf_get_int") (argument_list "(iVar14,0xd)" (( "(") (identifier "iVar14") (, ",") (number_literal "0xd") () ")")))) (, ",") (binary_expression "iVar8 == 1" (identifier "iVar8") (== "==") (number_literal "1"))) () ")")))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)" (( "(") (comma_expression "iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0" (assignment_expression "iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14)" (identifier "iVar8") (= "=") (call_expression "proxy_for_destination(0,iVar2,pcVar13,iVar14)" (identifier "proxy_for_destination") (argument_list "(0,iVar2,pcVar13,iVar14)" (( "(") (number_literal "0") (, ",") (identifier "iVar2") (, ",") (identifier "pcVar13") (, ",") (identifier "iVar14") () ")")))) (, ",") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);\n  }" ({ "{") (if_statement "if (iStack_51c != 0) {\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" (if "if") (parenthesized_expression "(iStack_51c != 0)" (( "(") (binary_expression "iStack_51c != 0" (identifier "iStack_51c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" ({ "{") (if_statement "if (pcVar20 == (code *)0x1) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }\n      else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" (if "if") (parenthesized_expression "(pcVar20 == (code *)0x1)" (( "(") (binary_expression "pcVar20 == (code *)0x1" (identifier "pcVar20") (== "==") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;\n      }" ({ "{") (expression_statement "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0" (identifier "iVar8") (= "=") (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4ff0" (pointer_expression "*(int *)(pcVar19 + 0x97640)" (* "*") (cast_expression "(int *)(pcVar19 + 0x97640)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x97640)" (( "(") (binary_expression "pcVar19 + 0x97640" (identifier "pcVar19") (+ "+") (number_literal "0x97640")) () ")")))) (+ "+") (number_literal "-0x4ff0"))) (; ";")) (} "}")) (else_clause "else if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" (else "else") (if_statement "if (pcVar20 == (code *)0x2) {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }\n      else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" (if "if") (parenthesized_expression "(pcVar20 == (code *)0x2)" (( "(") (binary_expression "pcVar20 == (code *)0x2" (identifier "pcVar20") (== "==") (cast_expression "(code *)0x2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;\n      }" ({ "{") (expression_statement "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8" (identifier "iVar8") (= "=") (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4fe8" (pointer_expression "*(int *)(pcVar19 + 0x97640)" (* "*") (cast_expression "(int *)(pcVar19 + 0x97640)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x97640)" (( "(") (binary_expression "pcVar19 + 0x97640" (identifier "pcVar19") (+ "+") (number_literal "0x97640")) () ")")))) (+ "+") (number_literal "-0x4fe8"))) (; ";")) (} "}")) (else_clause "else {\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" (else "else") (compound_statement "{\n        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;\n      }" ({ "{") (expression_statement "iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884" (identifier "iVar8") (= "=") (binary_expression "*(int *)(pcVar19 + 0x97640) + 0x884" (pointer_expression "*(int *)(pcVar19 + 0x97640)" (* "*") (cast_expression "(int *)(pcVar19 + 0x97640)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x97640)" (( "(") (binary_expression "pcVar19 + 0x97640" (identifier "pcVar19") (+ "+") (number_literal "0x97640")) () ")")))) (+ "+") (number_literal "0x884"))) (; ";")) (} "}")))))) (expression_statement "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);" (assignment_expression "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518)" (identifier "uVar9") (= "=") (call_expression "dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518)" (identifier "dupprintf") (argument_list "(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518)" (( "(") (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4fb0" (pointer_expression "*(int *)(pcVar19 + 0x97640)" (* "*") (cast_expression "(int *)(pcVar19 + 0x97640)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x97640)" (( "(") (binary_expression "pcVar19 + 0x97640" (identifier "pcVar19") (+ "+") (number_literal "0x97640")) () ")")))) (+ "+") (number_literal "-0x4fb0")) (, ",") (identifier "iVar2") (, ",") (identifier "iVar8") (, ",") (identifier "uStack_518") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);" (call_expression "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97658))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x97658)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x97658)" (* "*") (cast_expression "(code **)(pcVar19 + 0x97658)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x97658)" (( "(") (binary_expression "pcVar19 + 0x97658" (identifier "pcVar19") (+ "+") (number_literal "0x97658")) () ")"))))) () ")")) (argument_list "(iStack_51c,uVar9)" (( "(") (identifier "iStack_51c") (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "safefree(uVar9);" (call_expression "safefree(uVar9)" (identifier "safefree") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);" (assignment_expression "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97820))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x97820)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x97820)" (* "*") (cast_expression "(code **)(pcVar19 + 0x97820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x97820)" (( "(") (binary_expression "pcVar19 + 0x97820" (identifier "pcVar19") (+ "+") (number_literal "0x97820")) () ")"))))) () ")")) (argument_list "(iVar2,param_3,pcVar20)" (( "(") (identifier "iVar2") (, ",") (identifier "param_3") (, ",") (identifier "pcVar20") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }" (else "else") (compound_statement "{\n    if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }\n    uVar9 = dupstr(iVar2);\n    *(undefined4 *)param_3 = uVar9;\n    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);\n  }" ({ "{") (if_statement "if (iStack_51c != 0) {\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" (if "if") (parenthesized_expression "(iStack_51c != 0)" (( "(") (binary_expression "iStack_51c != 0" (identifier "iStack_51c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);\n      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);\n      safefree(uVar9);\n    }" ({ "{") (expression_statement "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);" (assignment_expression "uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518)" (identifier "uVar9") (= "=") (call_expression "dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518)" (identifier "dupprintf") (argument_list "(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518)" (( "(") (binary_expression "*(int *)(pcVar19 + 0x97640) + -0x4fe0" (pointer_expression "*(int *)(pcVar19 + 0x97640)" (* "*") (cast_expression "(int *)(pcVar19 + 0x97640)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x97640)" (( "(") (binary_expression "pcVar19 + 0x97640" (identifier "pcVar19") (+ "+") (number_literal "0x97640")) () ")")))) (+ "+") (number_literal "-0x4fe0")) (, ",") (identifier "iVar2") (, ",") (identifier "uStack_518") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);" (call_expression "(**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97658))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x97658)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x97658)" (* "*") (cast_expression "(code **)(pcVar19 + 0x97658)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x97658)" (( "(") (binary_expression "pcVar19 + 0x97658" (identifier "pcVar19") (+ "+") (number_literal "0x97658")) () ")"))))) () ")")) (argument_list "(iStack_51c,uVar9)" (( "(") (identifier "iStack_51c") (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "safefree(uVar9);" (call_expression "safefree(uVar9)" (identifier "safefree") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = dupstr(iVar2);" (assignment_expression "uVar9 = dupstr(iVar2)" (identifier "uVar9") (= "=") (call_expression "dupstr(iVar2)" (identifier "dupstr") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)param_3 = uVar9;" (assignment_expression "*(undefined4 *)param_3 = uVar9" (pointer_expression "*(undefined4 *)param_3" (* "*") (cast_expression "(undefined4 *)param_3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);" (assignment_expression "pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(**(code **)(pcVar19 + 0x97828))(iVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar19 + 0x97828))(iVar2)" (parenthesized_expression "(**(code **)(pcVar19 + 0x97828))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x97828)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x97828)" (* "*") (cast_expression "(code **)(pcVar19 + 0x97828)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x97828)" (( "(") (binary_expression "pcVar19 + 0x97828" (identifier "pcVar19") (+ "+") (number_literal "0x97828")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))))) (; ";")) (} "}")))) (return_statement "return pcVar13;" (return "return") (identifier "pcVar13") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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))))) (pointer_expression argument: (identifier))))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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))))) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (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: (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: (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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (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: (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: (number_literal))))) alternative: (else_clause (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list)))))) alternative: (else_clause (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) 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 (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) 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 (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (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))) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list)))) 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list)))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (field_expression argument: (identifier) field: (field_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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))))) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (field_expression argument: (identifier) field: (field_identifier)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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 (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (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 (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))))) (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)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)))))))))) (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 (field_expression argument: (identifier) field: (field_identifier)) (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (pointer_expression argument: (identifier))))) (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 (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 (field_expression argument: (identifier) field: (field_identifier)) (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (pointer_expression argument: (identifier))))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (field_expression argument: (identifier) field: (field_identifier)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (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: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) 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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (string_literal (string_content)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal))))))) right: (number_literal))))))))) arguments: (argument_list))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (identifier)) (number_literal) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))))) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (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)))))))))))))))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (number_literal))))))) arguments: (argument_list))) (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)))))))))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (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)))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (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: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (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: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_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: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (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: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (goto_statement label: (statement_identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_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: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) right: (number_literal))) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) body: (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: (binary_expression left: (identifier) right: (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: (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: (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)))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))))))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (identifier) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))))))) (return_statement (identifier)))))

char * MASKED(undefined *param_1,char *param_2,char *param_3,int param_4)

{
  byte bVar1;
  char cVar10;
  int iVar2;
  int iVar3;
  int iVar4;
  char *pcVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  undefined4 uVar9;
  undefined *puVar11;
  char *pcVar12;
  char *pcVar13;
  int iVar14;
  int iVar15;
  char *unaff_s2;
  uint uVar16;
  char *unaff_s3;
  char *unaff_s4;
  int iVar17;
  undefined4 unaff_s5;
  int unaff_s6;
  char *pcVar18;
  code *pcVar19;
  code *pcVar20;
  int iStack_51c;
  undefined4 uStack_518;
  undefined1 auStack_4fc [64];
  int iStack_4bc;
  int iStack_4b8;
  char *pcStack_4b4;
  char *pcStack_4b0;
  char *pcStack_4ac;
  char *pcStack_4a8;
  undefined4 uStack_4a4;
  int iStack_4a0;
  char *pcStack_46c;
  char cStack_468;
  char cStack_467;
  char cStack_465;
  byte bStack_464;
  char acStack_462 [2];
  undefined4 uStack_460;
  undefined4 uStack_45c;
  undefined4 uStack_458;
  undefined2 uStack_454;
  int iStack_25c;
  undefined *puStack_258;
  char *pcStack_254;
  char *pcStack_250;
  char *pcStack_24c;
  char *pcStack_248;
  undefined4 local_220;
  char local_21c;
  char local_21b;
  int local_1c;
  
  local_1c = *(int *)PTR___stack_chk_guard_000bef2c;
  if (*(int *)(param_1 + 0x44) == -1) {
    iVar2 = (*(code *)PTR_sk_addrtype_000be568)(*(undefined4 *)(param_1 + 0x10));
    if (iVar2 == 2) {
      *(undefined **)(param_1 + 4) = PTR_s_1_0_000be3a8 + -0x5438;
      pcVar13 = (char *)0x1;
    }
    else {
      if (iVar2 == 1) {
        (*(code *)PTR_sk_addrcopy_000be56c)(*(undefined4 *)(param_1 + 0x10),&local_220);
        unaff_s4 = (char *)0x0;
      }
      else {
        if (iVar2 != 3) {
          puVar11 = PTR_s_1_0_000be3a8 + -0x5404;
          (*(code *)PTR___assert_fail_000bed58)
                    (puVar11,PTR_s_1_0_000be3a8 + -0x54b4,0x32a,PTR_s_1_0_000be3a8 + -0x4e28);
          pcVar13 = unaff_s2;
          goto LAB_00025c88;
        }
        (*(code *)PTR_sk_getaddr_000be3b0)(*(undefined4 *)(param_1 + 0x10),&local_21c,0x200);
        iVar2 = (*(code *)PTR_strlen_000bee74)(&local_21c);
        unaff_s4 = (char *)(iVar2 + 1);
        local_220 = 1;
      }
      unaff_s2 = (char *)conf_get_str(*(undefined4 *)(param_1 + 0x74),0x10);
      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);
      unaff_s3 = unaff_s4 + iVar2 + 9;
      pcVar13 = (char *)safemalloc(unaff_s3,1);
      (*(code *)PTR_strcpy_000beed0)(pcVar13 + 8,unaff_s2);
      *pcVar13 = '\x04';
      pcVar13[1] = '\x01';
      pcVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0x14) >> 8);
      pcVar13[3] = (char)*(undefined4 *)(param_1 + 0x14);
      *(undefined4 *)(pcVar13 + 4) = local_220;
      iVar2 = (*(code *)PTR_strlen_000bee74)(unaff_s2);
      (*(code *)PTR_memcpy_000bef30)(pcVar13 + iVar2 + 9,&local_21c,unaff_s4);
      param_2 = pcVar13;
      param_3 = unaff_s3;
      (**(code **)(**(int **)(param_1 + 8) + 8))();
      safefree(unaff_s2);
      safefree(pcVar13);
      *(undefined4 *)(param_1 + 0x44) = 1;
      pcVar13 = (char *)0x0;
    }
  }
  else {
    puVar11 = param_1;
    pcVar13 = param_2;
    if (param_2 == (char *)0x0) {
LAB_00025c88:
      param_4 = *(int *)(param_1 + 0x58);
      param_3 = *(char **)(param_1 + 0x54);
      param_2 = *(char **)(param_1 + 0x50);
      (**(code **)(**(int **)(puVar11 + 0xc) + 4))();
      unaff_s2 = pcVar13;
    }
    else {
      unaff_s2 = param_2;
      if (param_2 == (char *)0x1) {
        pcVar13 = (char *)0x0;
      }
      else if (param_2 == (char *)0x3) {
        param_3 = *(char **)(param_1 + 0x70);
        param_2 = *(char **)(param_1 + 0x6c);
        pcVar13 = (char *)(**(code **)(**(int **)(param_1 + 0xc) + 0x10))();
      }
      else if ((param_2 == (char *)0x2) && (*(int *)(param_1 + 0x44) == 1)) {
        unaff_s2 = param_1 + 0x34;
        iVar2 = bufchain_size(unaff_s2);
        pcVar13 = (char *)0x1;
        if (7 < iVar2) {
          param_3 = (char *)0x8;
          bufchain_fetch(unaff_s2,&local_21c);
          if (local_21c == '\0') {
            if (local_21b == 'Z') {
              param_2 = (char *)0x8;
              bufchain_consume(unaff_s2);
              proxy_activate(param_1);
            }
            else if (local_21b == '\\') {
              param_4 = 0;
              param_3 = (char *)0x1f40;
              param_2 = PTR_s_1_0_000be3a8 + -0x53a4;
              (**(code **)(**(int **)(param_1 + 0xc) + 4))();
            }
            else {
              param_4 = 0;
              if (local_21b == ']') {
                param_3 = (char *)0x1f40;
                param_2 = PTR_s_1_0_000be3a8 + -0x5370;
                (**(code **)(**(int **)(param_1 + 0xc) + 4))();
              }
              else {
                param_3 = (char *)0x1f40;
                param_2 = PTR_s_1_0_000be3a8 + -0x5338;
                (**(code **)(**(int **)(param_1 + 0xc) + 4))();
              }
            }
          }
          else {
            param_4 = 0;
            param_3 = (char *)0x1f40;
            param_2 = PTR_s_1_0_000be3a8 + -0x53ec;
            (**(code **)(**(int **)(param_1 + 0xc) + 4))();
          }
        }
      }
      else {
        param_4 = 0;
        param_3 = (char *)0x1f41;
        param_2 = PTR_s_1_0_000be3a8 + -0x545c;
        (**(code **)(**(int **)(param_1 + 0xc) + 4))();
        pcVar13 = (char *)0x1;
      }
    }
  }
  if (local_1c == *(int *)PTR___stack_chk_guard_000bef2c) {
    return pcVar13;
  }
  iVar2 = local_1c;
  puVar11 = PTR___stack_chk_fail_000bef04;
  (*(code *)PTR___stack_chk_fail_000bef04)();
  iStack_25c = **(int **)(puVar11 + 0x990e4);
  puStack_258 = param_1;
  pcStack_254 = pcVar13;
  pcStack_250 = unaff_s2;
  pcStack_24c = unaff_s3;
  pcStack_248 = unaff_s4;
  if (*(int *)(iVar2 + 0x44) == -1) {
    uStack_460 = CONCAT13(5,uStack_460._1_3_);
    pcVar13 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);
    pcVar12 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);
    if ((*pcVar13 == '\0') && (*pcVar12 == '\0')) {
      uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);
      uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;
      pcStack_46c = (char *)0x3;
    }
    else {
      uStack_460._2_2_ = (ushort)(byte)uStack_460;
      pcStack_46c = (char *)0x3;
      proxy_socks5_offerencryptedauth(&uStack_460,&pcStack_46c);
      *(char *)((int)&uStack_460 + (int)pcStack_46c) = '\x02';
      uStack_460._1_3_ = CONCAT12((char)pcStack_46c + -1,uStack_460._2_2_);
      pcStack_46c = pcStack_46c + 1;
    }
    pcVar12 = (char *)&uStack_460;
    param_3 = pcStack_46c;
    (**(code **)(**(int **)(iVar2 + 8) + 8))();
    *(undefined4 *)(iVar2 + 0x44) = 1;
    pcVar13 = (char *)0x0;
    pcStack_4b0 = unaff_s2;
  }
  else {
    pcStack_4b0 = param_2;
    if (param_2 == (char *)0x0) {
      param_4 = *(int *)(iVar2 + 0x58);
      param_3 = *(char **)(iVar2 + 0x54);
      pcVar12 = *(char **)(iVar2 + 0x50);
      (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
      pcVar13 = (char *)0x0;
    }
    else if (param_2 == (char *)0x1) {
      pcVar13 = (char *)0x0;
      pcVar12 = param_2;
    }
    else if (param_2 == (char *)0x3) {
      param_3 = *(char **)(iVar2 + 0x70);
      pcVar12 = *(char **)(iVar2 + 0x6c);
      pcVar13 = (char *)(**(code **)(**(int **)(iVar2 + 0xc) + 0x10))();
    }
    else {
      pcVar5 = param_2;
      if (param_2 == (char *)0x2) {
        pcVar5 = (char *)(iVar2 + 0x34);
        pcStack_4b0 = pcVar5;
        if (*(int *)(iVar2 + 0x44) == 1) {
          iVar8 = bufchain_size(pcVar5);
          param_3 = (char *)0x2;
          pcVar13 = (char *)0x1;
          pcVar12 = param_2;
          if (1 < iVar8) {
            bufchain_fetch(pcVar5,&uStack_460);
            param_4 = 0;
            if (uStack_460._0_1_ == '\x05') {
              if (uStack_460._1_1_ == '\0') {
                *(undefined4 *)(iVar2 + 0x44) = 2;
              }
              else if (uStack_460._1_1_ == '\x01') {
                *(undefined4 *)(iVar2 + 0x44) = 4;
              }
              else if (uStack_460._1_1_ == '\x02') {
                *(undefined4 *)(iVar2 + 0x44) = 5;
              }
              else {
                param_4 = 0;
                if (uStack_460._1_1_ != '\x03') {
                  param_3 = (char *)0x1f40;
                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x52cc);
                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                  goto LAB_00025ff8;
                }
                *(undefined4 *)(iVar2 + 0x44) = 6;
              }
              param_4 = 0;
              param_2 = (char *)0x2;
              bufchain_consume(pcVar5);
              iVar8 = *(int *)(iVar2 + 0x44);
              goto LAB_00026064;
            }
            param_3 = (char *)0x1f40;
            pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5304);
            (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
          }
        }
        else {
          iVar8 = *(int *)(iVar2 + 0x44);
LAB_00026064:
          if (iVar8 == 7) {
            iVar14 = iVar2 + 0x34;
            iVar8 = bufchain_size(iVar14);
            param_3 = (char *)0x2;
            if (1 < iVar8) {
              bufchain_fetch(iVar14,&uStack_460);
              if (uStack_460._0_1_ == '\x01') {
                param_4 = 0;
                if (uStack_460._1_1_ == '\0') {
                  bufchain_consume(iVar14,2);
                  *(undefined4 *)(iVar2 + 0x44) = 2;
                  goto LAB_000262a8;
                }
                param_3 = (char *)0x1f40;
                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5244);
                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                pcVar13 = (char *)0x1;
                goto LAB_00025ff8;
              }
              param_4 = 0;
              param_3 = (char *)0x1f40;
              param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5290);
              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
            }
            pcVar13 = (char *)0x1;
            pcVar12 = param_2;
          }
          else if ((iVar8 != 8) ||
                  (pcVar13 = (char *)proxy_socks5_handlechap(iVar2), pcVar12 = param_2,
                  pcVar13 == (char *)0x0)) {
            iVar8 = *(int *)(iVar2 + 0x44);
            if (iVar8 == 2) {
LAB_000262a8:
              iVar8 = (**(code **)(puVar11 + 0x98720))(*(undefined4 *)(iVar2 + 0x10));
              if (iVar8 == 1) {
                uStack_460 = CONCAT31(uStack_460._0_3_,1);
                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);
                param_3 = (char *)0xa;
              }
              else if (iVar8 == 2) {
                uStack_460 = CONCAT31(uStack_460._0_3_,4);
                (**(code **)(puVar11 + 0x98724))(*(undefined4 *)(iVar2 + 0x10),&uStack_45c);
                param_3 = (char *)0x16;
              }
              else {
                if (iVar8 != 3) {
                  param_4 = *(int *)(puVar11 + 0x98560) + -0x4e40;
                  param_2 = (char *)(*(int *)(puVar11 + 0x98560) + -0x54b4);
                  (**(code **)(puVar11 + 0x98f10))
                            (*(int *)(puVar11 + 0x98560) + -0x5404,param_2,0x46a);
                  goto LAB_0002640c;
                }
                uStack_460 = CONCAT31(uStack_460._0_3_,3);
                (**(code **)(puVar11 + 0x98568))
                          (*(undefined4 *)(iVar2 + 0x10),(int)&uStack_45c + 1,0x100);
                cVar10 = (**(code **)(puVar11 + 0x9902c))((int)&uStack_45c + 1);
                uStack_45c = CONCAT13(cVar10,uStack_45c._1_3_);
                param_3 = (char *)(cVar10 + 7);
              }
              uStack_460._1_3_ = CONCAT12(1,uStack_460._2_2_);
              uStack_460 = CONCAT13(5,uStack_460._1_3_);
              uStack_460 = CONCAT22(uStack_460._0_2_,uStack_460._2_2_) & 0xffff00ff;
              uVar9 = *(undefined4 *)(iVar2 + 0x14);
              acStack_462[(int)param_3] = (char)((uint)uVar9 >> 8);
              (acStack_462 + 1)[(int)param_3] = (char)uVar9;
              pcVar12 = (char *)&uStack_460;
              (**(code **)(**(int **)(iVar2 + 8) + 8))();
              *(undefined4 *)(iVar2 + 0x44) = 3;
              pcVar13 = (char *)0x1;
            }
            else if (iVar8 == 3) {
LAB_0002640c:
              iVar14 = iVar2 + 0x34;
              iVar8 = bufchain_size(iVar14);
              param_3 = &DAT_00000005;
              if (iVar8 < 5) {
LAB_00026430:
                pcVar13 = (char *)0x1;
                pcVar12 = param_2;
                pcStack_4b0 = pcVar5;
              }
              else {
                bufchain_fetch(iVar14,&cStack_468);
                pcStack_4b0 = (char *)(int)cStack_467;
                if (cStack_468 == '\x05') {
                  if (pcStack_4b0 == (char *)0x0) {
                    if (cStack_465 == '\x03') {
                      param_2 = (char *)(bStack_464 + 6);
                    }
                    else if (cStack_465 == '\x04') {
                      param_2 = (char *)0x16;
                    }
                    else {
                      param_4 = 0;
                      if (cStack_465 != '\x01') {
                        param_3 = (char *)0x1f40;
                        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x50dc);
                        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                        pcVar13 = (char *)0x1;
                        goto LAB_00025ff8;
                      }
                      param_2 = (char *)0xa;
                    }
                    iVar8 = bufchain_size(iVar14);
                    pcVar5 = param_2;
                    if (iVar8 < (int)param_2) goto LAB_00026430;
                    pcVar12 = param_2;
                    bufchain_consume(iVar14);
                    proxy_activate(iVar2);
                    pcVar13 = (char *)0x1;
                    pcStack_4b0 = param_2;
                  }
                  else {
                    iVar8 = *(int *)(puVar11 + 0x98560);
                    uStack_460 = *(uint *)(iVar8 + -0x51d0);
                    uStack_45c = *(undefined4 *)(iVar8 + -0x51cc);
                    uStack_458 = *(undefined4 *)(iVar8 + -0x51c8);
                    uStack_454 = *(undefined2 *)(iVar8 + -0x51c4);
                    if (((uint)(pcStack_4b0 + -1) & 0xff) < 8) {
                    /* WARNING: Could not recover jumptable at 0x00026534. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      pcVar13 = (char *)(*(code *)(puVar11 +
                                                  (int)("Server requested password change" +
                                                       *(int *)(*(int *)(puVar11 + 0x98560) +
                                                                -0x4e60 +
                                                               ((uint)(pcStack_4b0 + -1) & 0xff) * 4
                                                               ) + 8)))();
                      return pcVar13;
                    }
                    iVar8 = (**(code **)(puVar11 + 0x9902c))(&uStack_460);
                    (**(code **)(puVar11 + 0x98f00))
                              ((int)&uStack_460 + iVar8,1,0xffffffff,
                               *(int *)(puVar11 + 0x98560) + -0x5100);
                    param_4 = 0;
                    param_3 = (char *)0x1f40;
                    pcVar12 = (char *)&uStack_460;
                    (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                    pcVar13 = (char *)0x1;
                  }
                }
                else {
                  param_4 = 0;
                  param_3 = (char *)0x1f40;
                  pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -21000);
                  (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                  pcVar13 = (char *)0x1;
                }
              }
            }
            else if (iVar8 == 4) {
              param_4 = 0;
              param_3 = (char *)0x1f40;
              pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x509c);
              (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
              pcVar13 = (char *)0x1;
            }
            else if (iVar8 == 5) {
              unaff_s3 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x10);
              unaff_s4 = (char *)conf_get_str(*(undefined4 *)(iVar2 + 0x74),0x11);
              if ((*unaff_s3 == '\0') && (param_4 = 0, *unaff_s4 == '\0')) {
                param_3 = (char *)0x1f40;
                pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5068);
                (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
                pcVar13 = (char *)0x1;
              }
              else {
                pcVar13 = (char *)(**(code **)(puVar11 + 0x9902c))(unaff_s3);
                unaff_s5 = 1;
                pcVar5 = (char *)0x1;
                if (0 < (int)pcVar13) {
                  pcVar5 = pcVar13;
                }
                if (0xff < (int)pcVar5) {
                  pcVar5 = (char *)0xff;
                }
                iVar8 = (**(code **)(puVar11 + 0x9902c))(unaff_s4);
                if (iVar8 < 1) {
                  iVar8 = 1;
                }
                unaff_s6 = 0xff;
                if (iVar8 < 0x100) {
                  unaff_s6 = iVar8;
                }
                uStack_460._1_3_ = CONCAT12((char)pcVar5,uStack_460._2_2_);
                uStack_460 = CONCAT13(1,uStack_460._1_3_);
                param_4 = 0x1ff;
                (**(code **)(puVar11 + 0x9905c))((int)&uStack_460 + 2,unaff_s3,pcVar5);
                pcVar5[(int)&uStack_460 + 2] = (char)unaff_s6;
                unaff_s3 = (char *)&uStack_460;
                (**(code **)(puVar11 + 0x990e8))(unaff_s3 + (int)(pcVar5 + 3),unaff_s4,unaff_s6);
                param_3 = pcVar5 + unaff_s6 + 3;
                pcVar12 = unaff_s3;
                (**(code **)(**(int **)(iVar2 + 8) + 8))();
                *(undefined4 *)(iVar2 + 0x44) = 7;
                pcVar13 = (char *)0x1;
                pcStack_4b0 = pcVar5;
              }
            }
            else if ((iVar8 != 6) ||
                    (pcVar13 = (char *)proxy_socks5_selectchap(iVar2), pcVar12 = param_2,
                    pcVar13 == (char *)0x0)) goto LAB_00025ec0;
          }
        }
      }
      else {
LAB_00025ec0:
        param_4 = 0;
        param_3 = (char *)0x1f41;
        pcVar12 = (char *)(*(int *)(puVar11 + 0x98560) + -0x5014);
        (**(code **)(**(int **)(iVar2 + 0xc) + 4))();
        pcVar13 = (char *)0x1;
        pcStack_4b0 = pcVar5;
      }
    }
  }
LAB_00025ff8:
  if (iStack_25c == **(int **)(puVar11 + 0x990e4)) {
    return pcVar13;
  }
  pcVar19 = *(code **)(puVar11 + 0x990bc);
  iVar8 = iStack_25c;
  (*pcVar19)();
  pcVar20 = pcVar19 + 0x9fa7c;
  iStack_4bc = **(int **)(pcVar19 + 0x98638);
  iVar14 = param_4;
  iStack_4b8 = iVar2;
  pcStack_4b4 = pcVar13;
  pcStack_4ac = unaff_s3;
  pcStack_4a8 = unaff_s4;
  uStack_4a4 = unaff_s5;
  iStack_4a0 = unaff_s6;
  if (iVar8 == 0) {
    pcVar13 = (char *)0xc;
    iVar2 = conf_get_int(param_4,0xc);
    if (iVar2 == 0) {
      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);
      if (iVar2 != 0) {
        pcVar5 = (char *)0x0;
        goto LAB_00026c80;
      }
    }
    else {
      iVar2 = 0;
    }
  }
  else {
    iVar2 = (**(code **)(pcVar19 + 0x97c88))();
    pcVar13 = (char *)0xc;
    if (iVar2 != 0) {
      pcVar5 = (char *)0x0;
      goto LAB_00026c80;
    }
    iVar2 = conf_get_int(param_4,0xc);
    if (iVar2 == 0) {
      iVar2 = (**(code **)(pcVar19 + 0x97c8c))(pcVar12);
      pcVar5 = (char *)0x0;
      if (iVar2 != 0) goto LAB_00026c80;
      iVar2 = (**(code **)(pcVar19 + 0x97c90))(iVar8);
      param_3 = &DAT_00000040;
      if (iVar2 != 0) {
        pcVar5 = (char *)0x0;
        goto LAB_00026c80;
      }
    }
    param_3 = &DAT_00000040;
    (**(code **)(pcVar19 + 0x97abc))(iVar8,auStack_4fc);
    iVar2 = (**(code **)(pcVar19 + 0x98580))(auStack_4fc);
  }
  iVar3 = (**(code **)(pcVar19 + 0x98580))(pcVar12);
  pcVar13 = (char *)0xa;
  iVar4 = conf_get_str(param_4,10);
  iVar15 = 0;
  while( true ) {
    uVar16 = (uint)*(char *)(iVar4 + iVar15);
    if (uVar16 == 0) break;
    piVar6 = (int *)(**(code **)(pcVar19 + 0x98460))();
    iVar17 = *piVar6;
    iVar7 = iVar15;
    while ((pcVar18 = (char *)(iVar4 + iVar15) + (iVar7 - iVar15),
           (*(ushort *)(iVar17 + (uVar16 & 0xff) * 2) & 0x20) != 0 || (uVar16 == 0x2c))) {
      iVar7 = iVar7 + 1;
      uVar16 = (uint)*(char *)(iVar4 + iVar7);
      if (uVar16 == 0) {
        pcVar5 = (char *)0x1;
        goto LAB_00026c80;
      }
    }
    if (uVar16 == 0) {
      pcVar5 = (char *)0x1;
      goto LAB_00026c80;
    }
    bVar1 = *(byte *)(iVar4 + iVar7);
    iVar15 = iVar7;
    while ((bVar1 != 0 &&
           ((((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x800) != 0 || ((bVar1 - 0x2d & 0xff) < 2))
            || (bVar1 == 0x2a))))) {
      iVar15 = iVar15 + 1;
      bVar1 = *(byte *)(iVar4 + iVar15);
    }
    if (uVar16 == 0x2a) {
      if (iVar8 != 0) {
        param_3 = (char *)((iVar15 - iVar7) + -1);
        pcVar13 = (char *)(iVar4 + iVar7 + 1);
        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))
                                   (auStack_4fc + ((iVar2 + 1) - (iVar15 - iVar7)),pcVar13);
        if (pcVar5 == (char *)0x0) goto LAB_00026c80;
      }
      param_3 = (char *)((iVar15 - iVar7) + -1);
      pcVar18 = (char *)(iVar4 + iVar7 + 1);
      iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12 + ((iVar3 + 1) - (iVar15 - iVar7)),pcVar18);
      if (iVar7 == 0) {
        pcVar5 = (char *)0x0;
        pcVar13 = pcVar18;
        goto LAB_00026c80;
      }
    }
    else {
      pcVar13 = pcVar18;
      if (*(char *)(iVar4 + iVar15 + -1) == '*') {
        if (iVar8 != 0) {
          param_3 = (char *)((iVar15 - iVar7) + -1);
          pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18);
          if (pcVar5 == (char *)0x0) goto LAB_00026c80;
        }
        param_3 = (char *)((iVar15 - iVar7) + -1);
        iVar7 = (**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);
        if (iVar7 == 0) {
          pcVar5 = (char *)0x0;
          pcVar13 = pcVar18;
          goto LAB_00026c80;
        }
      }
      else {
        param_3 = (char *)(iVar15 - iVar7);
        if ((iVar8 != 0) &&
           (pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(auStack_4fc,pcVar18),
           pcVar5 == (char *)0x0)) goto LAB_00026c80;
        param_3 = (char *)(iVar15 - iVar7);
        pcVar5 = (char *)(**(code **)(pcVar19 + 0x9852c))(pcVar12,pcVar18);
        pcVar13 = pcVar18;
        if (pcVar5 == (char *)0x0) goto LAB_00026c80;
      }
    }
    bVar1 = *(byte *)(iVar4 + iVar15);
    while (((pcVar13 = pcVar18, bVar1 != 0 && ((*(ushort *)(iVar17 + (uint)bVar1 * 2) & 0x20) == 0))
           && (bVar1 != 0x2c))) {
      bVar1 = *(byte *)(iVar4 + iVar15 + 1);
      iVar15 = iVar15 + 1;
    }
  }
  pcVar5 = (char *)0x1;
LAB_00026c80:
  if (iStack_4bc == **(int **)(pcVar19 + 0x98638)) {
    return pcVar5;
  }
  pcVar19 = *(code **)(pcVar19 + 0x98610);
  iVar2 = iStack_4bc;
  (*pcVar19)();
  iVar8 = conf_get_int(iVar14,0xd);
  if (((iVar8 == 0) ||
      ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 0 &&
       ((iVar8 = conf_get_int(iVar14,0xb), iVar8 != 2 ||
        (iVar8 = conf_get_int(iVar14,0xd), iVar8 == 1)))))) ||
     (iVar8 = proxy_for_destination(0,iVar2,pcVar13,iVar14), iVar8 == 0)) {
    if (iStack_51c != 0) {
      if (pcVar20 == (code *)0x1) {
        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4ff0;
      }
      else if (pcVar20 == (code *)0x2) {
        iVar8 = *(int *)(pcVar19 + 0x97640) + -0x4fe8;
      }
      else {
        iVar8 = *(int *)(pcVar19 + 0x97640) + 0x884;
      }
      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fb0,iVar2,iVar8,uStack_518);
      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);
      safefree(uVar9);
    }
    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97820))(iVar2,param_3,pcVar20);
  }
  else {
    if (iStack_51c != 0) {
      uVar9 = dupprintf(*(int *)(pcVar19 + 0x97640) + -0x4fe0,iVar2,uStack_518);
      (**(code **)(pcVar19 + 0x97658))(iStack_51c,uVar9);
      safefree(uVar9);
    }
    uVar9 = dupstr(iVar2);
    *(undefined4 *)param_3 = uVar9;
    pcVar13 = (char *)(**(code **)(pcVar19 + 0x97828))(iVar2);
  }
  return pcVar13;
}

