
uerr_t ftp_epsv(int csock,ip_address *ip,int *port)

{
  bool bVar1;
  undefined *puVar2;
  char *pcVar3;
  int iVar4;
  uerr_t uVar5;
  char **ppcVar6;
  char **ppcVar7;
  undefined4 *bufsize;
  char **buf;
  undefined8 *bufsize_00;
  int iVar8;
  char *pcVar9;
  uint uVar10;
  char cVar12;
  char **ppcVar11;
  int iVar13;
  uint in_a3;
  int iVar14;
  int *piVar15;
  int *piVar16;
  undefined4 uVar17;
  undefined *puVar18;
  code *pcVar19;
  code *pcVar20;
  undefined8 uVar21;
  double in_f12_13;
  char *pcStack_258;
  int iStack_254;
  uerr_t uStack_250;
  int *piStack_24c;
  int iStack_248;
  char **ppcStack_244;
  char **ppcStack_240;
  code *pcStack_23c;
  undefined8 uStack_228;
  code *pcStack_220;
  char *pcStack_218;
  int iStack_214;
  uerr_t uStack_20c;
  int *piStack_208;
  char *pcStack_204;
  undefined4 *puStack_200;
  code *pcStack_1fc;
  undefined8 uStack_1e8;
  code *pcStack_1e0;
  char *pcStack_1d8;
  int iStack_1d4;
  char **ppcStack_1d0;
  int iStack_1cc;
  int iStack_1c8;
  int iStack_1c4;
  char *pcStack_1c0;
  char **ppcStack_1bc;
  undefined4 uStack_1b8;
  code *pcStack_1b4;
  undefined8 uStack_1a0;
  code *pcStack_198;
  uerr_t uStack_18c;
  undefined4 *puStack_188;
  byte *pbStack_184;
  char *pcStack_180;
  char *pcStack_17c;
  char **ppcStack_178;
  int *piStack_174;
  int iStack_170;
  char *pcStack_16c;
  byte *pbStack_138;
  char *pcStack_120;
  int iStack_11c;
  char **ppcStack_118;
  int *piStack_114;
  int iStack_110;
  code *pcStack_10c;
  undefined8 uStack_f8;
  code *pcStack_f0;
  uerr_t uStack_e4;
  char *pcStack_e0;
  int iStack_dc;
  char *pcStack_d8;
  int *piStack_d4;
  int iStack_d0;
  code *pcStack_cc;
  undefined8 uStack_b8;
  code *pcStack_b0;
  uerr_t uStack_a4;
  char *pcStack_a0;
  int iStack_9c;
  char **ppcStack_98;
  int *piStack_94;
  int iStack_90;
  code *pcStack_8c;
  undefined8 uStack_78;
  undefined *puStack_70;
  uerr_t uStack_64;
  char *pcStack_5c;
  char acStack_58 [4];
  int iStack_54;
  uerr_t uStack_50;
  undefined *puStack_4c;
  int *piStack_48;
  code *pcStack_44;
  undefined8 local_30;
  char *respline;
  int local_1c;
  
  puVar2 = PTR___stack_chk_guard_000afc3c;
  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;
  if (ip->family == 2) {
    pcVar9 = PTR_DAT_000af498 + -0x6670;
  }
  else {
    pcVar9 = PTR_s_hallenge__000af46c + 0x1550;
  }
  pcVar3 = ftp_request(PTR_s_hallenge__000af46c + -0x15ec,pcVar9);
  iVar4 = (*(code *)PTR_strlen_000afc68)(pcVar3);
  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);
  pcVar9 = pcVar3;
  iVar4 = fd_write(csock,pcVar3,iVar4,in_f12_13);
  cVar12 = (char)pcVar9;
  if (iVar4 < 0) {
    uVar5 = WRITEFAILED;
    (*(code *)PTR_free_000afd08)(pcVar3);
  }
  else {
    (*(code *)PTR_free_000afd08)();
    ppcVar11 = &respline;
    uVar5 = ftp_response(csock,ppcVar11);
    cVar12 = (char)ppcVar11;
    if (uVar5 == FTPOK) {
      csock = (int)respline;
      if (*respline == '2') {
        if (PTR_opt_000af488[0x16b] != '\0') {
          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);
          csock = (int)respline;
        }
        cVar12 = '(';
        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);
        puVar18 = PTR_free_000afd08;
        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&
           (*(char *)(iVar4 + 2) == iVar8)) {
          cVar12 = *(char *)(iVar4 + 3);
          pcVar9 = (char *)(iVar4 + 4);
          if (cVar12 == iVar8) {
            iVar13 = (int)*pcVar9;
            in_a3 = iVar13 - 0x30;
            uVar10 = (uint)(in_a3 < 10);
            iVar14 = 0;
            if (uVar10 != 0) {
              uVar10 = 0;
              do {
                pcVar3 = pcVar9 + 1;
                uVar10 = (uVar10 + iVar14) * 2;
                iVar14 = in_a3 + uVar10;
                if ((char *)(iVar4 + 9) == pcVar3) {
                  iVar13 = (int)pcVar9[1];
                  pcVar9 = (char *)(iVar4 + 9);
                  break;
                }
                iVar13 = (int)*pcVar3;
                in_a3 = iVar13 - 0x30;
                uVar10 = iVar14 * 4;
                pcVar9 = pcVar3;
              } while (in_a3 < 10);
            }
            cVar12 = (char)uVar10;
            if (iVar8 == iVar13) {
              if (pcVar9[1] == ')') {
                *port = iVar14;
                (*(code *)puVar18)(csock);
              }
              else {
                uVar5 = FTPINVPASV;
                (*(code *)PTR_free_000afd08)();
              }
              goto LAB_0002ae20;
            }
          }
        }
        uVar5 = FTPINVPASV;
        (*(code *)PTR_free_000afd08)(csock);
      }
      else {
        uVar5 = FTPNOPASV;
        (*(code *)PTR_free_000afd08)(respline);
      }
    }
  }
LAB_0002ae20:
  if (local_1c == *(int *)puVar2) {
    return uVar5;
  }
  pcVar19 = ftp_type;
  iVar4 = local_1c;
  puVar18 = PTR___stack_chk_fail_000afbd4;
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  puStack_70 = puVar18 + 0x8c558;
  puStack_4c = puVar2;
  piVar15 = *(int **)(puVar18 + 0x84d64);
  acStack_58[1] = 0;
  iStack_54 = *piVar15;
  acStack_58[0] = cVar12;
  uStack_50 = uVar5;
  piStack_48 = port;
  pcStack_44 = pcVar19;
  ppcVar6 = (char **)ftp_request((char *)(*(int *)(puVar18 + 0x84594) + -0x15d4),acStack_58);
  iVar8 = (**(code **)(puStack_70 + -0x77c8))(ppcVar6);
  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);
  ppcVar11 = ppcVar6;
  iVar8 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);
  if (iVar8 < 0) {
    (**(code **)(puStack_70 + -0x7728))(ppcVar6);
    uVar5 = WRITEFAILED;
  }
  else {
    (**(code **)(puStack_70 + -0x7728))();
    ppcVar11 = &pcStack_5c;
    uVar5 = ftp_response(iVar4,ppcVar11);
    if (uVar5 == FTPOK) {
      ppcVar11 = (char **)(int)*pcStack_5c;
      if (ppcVar11 == (char **)0x32) {
        uStack_64 = uVar5;
        (**(code **)(puStack_70 + -0x7728))();
        uVar5 = uStack_64;
      }
      else {
        (**(code **)(puStack_70 + -0x7728))();
        uVar5 = FTPUNKNOWNTYPE;
      }
    }
  }
  if (iStack_54 == *piVar15) {
    return uVar5;
  }
  pcVar19 = *(code **)(puStack_70 + -0x785c);
  pcVar20 = ftp_cwd;
  iVar8 = iStack_54;
  (*pcVar19)();
  pcStack_b0 = pcVar19 + 0x8c410;
  piVar16 = *(int **)(pcVar19 + 0x84c1c);
  iStack_9c = *piVar16;
  ppcStack_98 = ppcVar6;
  piStack_94 = piVar15;
  iStack_90 = iVar4;
  pcStack_8c = pcVar20;
  pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x8444c) + -0x15cc),(char *)ppcVar11);
  iVar4 = (**(code **)(pcStack_b0 + -0x77c8))(pcVar9);
  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);
  iVar13 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);
  if (iVar13 < 0) {
    (**(code **)(pcStack_b0 + -0x7728))(pcVar9);
    uVar5 = WRITEFAILED;
  }
  else {
    (**(code **)(pcStack_b0 + -0x7728))();
    uVar5 = ftp_response(iVar8,&pcStack_a0);
    if (uVar5 == FTPOK) {
      if (*pcStack_a0 == '5') {
        (**(code **)(pcStack_b0 + -0x7728))();
        uVar5 = FTPNSFOD;
      }
      else if (*pcStack_a0 == '2') {
        uStack_a4 = uVar5;
        (**(code **)(pcStack_b0 + -0x7728))();
        uVar5 = uStack_a4;
      }
      else {
        (**(code **)(pcStack_b0 + -0x7728))();
        uVar5 = FTPRERR;
      }
    }
  }
  if (iStack_9c == *piVar16) {
    return uVar5;
  }
  pcVar19 = *(code **)(pcStack_b0 + -0x785c);
  pcVar20 = ftp_rest;
  iVar13 = iStack_9c;
  (*pcVar19)();
  pcStack_f0 = pcVar19 + 0x8c2b4;
  piVar15 = *(int **)(pcVar19 + 0x84ac0);
  iStack_dc = *piVar15;
  pcStack_d8 = pcVar9;
  piStack_d4 = piVar16;
  iStack_d0 = iVar8;
  pcStack_cc = pcVar20;
  pcVar9 = (char *)(**(code **)(pcVar19 + 0x8451c))(iVar4,in_a3);
  ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8),pcVar9);
  iVar4 = (**(code **)(pcStack_f0 + -0x77c8))(ppcVar6);
  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);
  ppcVar11 = ppcVar6;
  iVar4 = fd_write(iVar13,(char *)ppcVar6,iVar4,in_f12_13);
  if (iVar4 < 0) {
    (**(code **)(pcStack_f0 + -0x7728))(ppcVar6);
    uVar5 = WRITEFAILED;
  }
  else {
    (**(code **)(pcStack_f0 + -0x7728))();
    ppcVar11 = &pcStack_e0;
    uVar5 = ftp_response(iVar13,ppcVar11);
    if (uVar5 == FTPOK) {
      ppcVar11 = (char **)(int)*pcStack_e0;
      if (ppcVar11 == (char **)&DAT_00000033) {
        uStack_e4 = uVar5;
        (**(code **)(pcStack_f0 + -0x7728))();
        uVar5 = uStack_e4;
      }
      else {
        (**(code **)(pcStack_f0 + -0x7728))();
        uVar5 = FTPRESTFAIL;
      }
    }
  }
  if (iStack_dc == *piVar15) {
    return uVar5;
  }
  pcVar19 = *(code **)(pcStack_f0 + -0x785c);
  pcVar20 = ftp_retr;
  iVar4 = iStack_dc;
  (*pcVar19)();
  piVar16 = *(int **)(pcVar19 + 0x8496c);
  iStack_11c = *piVar16;
  ppcStack_118 = ppcVar6;
  piStack_114 = piVar15;
  iStack_110 = iVar13;
  pcStack_10c = pcVar20;
  ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0),(char *)ppcVar11);
  iVar8 = (**(code **)(pcVar19 + 0x84998))(ppcVar6);
  uVar21 = *(undefined8 *)(*(int *)(pcVar19 + 0x84198) + 0x40b8);
  ppcVar11 = ppcVar6;
  iVar13 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);
  if (iVar13 < 0) {
    (**(code **)(pcVar19 + 0x84a38))(ppcVar6);
    uVar5 = WRITEFAILED;
  }
  else {
    (**(code **)(pcVar19 + 0x84a38))();
    ppcVar11 = &pcStack_120;
    uVar5 = ftp_response(iVar4,ppcVar11);
    if (uVar5 == FTPOK) {
      ppcVar11 = (char **)0x31;
      if (*pcStack_120 == '5') {
        (**(code **)(pcVar19 + 0x84a38))();
        uVar5 = FTPNSFOD;
      }
      else if (*pcStack_120 == '1') {
        (**(code **)(pcVar19 + 0x84a38))();
      }
      else {
        (**(code **)(pcVar19 + 0x84a38))();
        uVar5 = FTPRERR;
      }
    }
  }
  if (iStack_11c == *piVar16) {
    return uVar5;
  }
  pcVar19 = *(code **)(pcVar19 + 0x84904);
  iVar13 = iStack_11c;
  (*pcVar19)();
  pcStack_198 = pcVar19 + 0x8c004;
  puStack_188 = *(undefined4 **)(pcVar19 + 0x84810);
  pbStack_138 = (byte *)((ulonglong)uVar21 >> 0x20);
  pbStack_184 = pbStack_138;
  pcStack_17c = (char *)*puStack_188;
  *pbStack_138 = 0;
  iVar14 = 0;
  ppcStack_178 = ppcVar6;
  piStack_174 = piVar16;
  iStack_170 = iVar4;
  pcStack_16c = (char *)csock;
  if (iVar8 == 0) {
    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b0);
  }
  else if (*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b) == '\0') {
    iVar14 = 1;
    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8);
  }
  else {
    iVar14 = 1;
    debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));
    pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);
  }
  iVar4 = *(int *)(pcStack_198 + -0x7c70);
  uVar21 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);
  uVar17 = *(undefined4 *)(pcStack_198 + -0x7d38);
  pcVar3 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);
  do {
    while( true ) {
      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11);
      bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7);
      ppcVar6 = ppcVar7;
      uStack_1a0 = uVar21;
      iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13);
      if (iVar8 < 0) {
        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);
        uVar5 = WRITEFAILED;
        goto LAB_0002b57c;
      }
      ppcVar7 = (char **)(iVar14 + 1);
      (**(code **)(pcStack_198 + -0x7728))();
      ppcVar6 = &pcStack_180;
      uVar5 = ftp_response(iVar13,&pcStack_180);
      pcVar9 = pcVar3;
      if (uVar5 != FTPOK) break;
      ppcVar6 = (char **)0x31;
      if (*pcStack_180 == '5') {
        iVar14 = 0;
        uVar5 = FTPNSFOD;
      }
      else if (*pcStack_180 == '1') {
        *pbStack_184 = (byte)iVar14 ^ 1;
        iVar14 = 1;
      }
      else {
        iVar14 = 0;
        uVar5 = FTPRERR;
      }
      uStack_18c = uVar5;
      (**(code **)(pcStack_198 + -0x7728))();
      pcStack_180 = (char *)0x0;
      uVar5 = uStack_18c;
      if (in_a3 != 0) goto LAB_0002b570;
      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)) goto LAB_0002b57c;
    }
    if (in_a3 != 0) {
LAB_0002b570:
      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))
      {
        uStack_18c = uVar5;
        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));
        uVar5 = uStack_18c;
      }
      break;
    }
    iVar14 = 1;
  } while (ppcVar7 == (char **)0x1);
LAB_0002b57c:
  if (pcStack_17c == (char *)*puStack_188) {
    return uVar5;
  }
  pcVar19 = *(code **)(pcStack_198 + -0x785c);
  pcVar20 = ftp_syst;
  pcVar9 = pcStack_17c;
  (*pcVar19)();
  pcStack_1e0 = pcVar19 + 0x8bd8c;
  piVar15 = *(int **)(pcVar19 + 0x84598);
  iStack_1d4 = *piVar15;
  ppcStack_1d0 = ppcVar7;
  iStack_1cc = iVar14;
  iStack_1c8 = iVar13;
  iStack_1c4 = iVar4 + -0x6ee0;
  pcStack_1c0 = pcVar3;
  ppcStack_1bc = ppcVar11;
  uStack_1b8 = uVar17;
  pcStack_1b4 = pcVar20;
  ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c),(char *)0x0);
  iVar4 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar7);
  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);
  ppcVar11 = ppcVar7;
  iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13);
  if (iVar4 < 0) {
    uVar5 = WRITEFAILED;
    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar7);
  }
  else {
    (**(code **)(pcStack_1e0 + -0x7728))();
    ppcVar11 = &pcStack_1d8;
    uVar5 = ftp_response((int)pcVar9,ppcVar11);
    pcVar3 = pcStack_1d8;
    if (uVar5 == FTPOK) {
      if (*pcStack_1d8 == '5') {
        uVar5 = FTPSRVERR;
        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);
        pcVar9 = pcStack_1d8;
      }
      else {
        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);
        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);
        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);
        ppcVar11 = (char **)(iVar4 + 0x4a48);
        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);
        *bufsize = 2;
        if (pcVar9 == (char *)0x0) {
LAB_0002b8d8:
          *ppcVar6 = (char *)0x5;
        }
        else {
          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);
          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);
          if (iVar4 == 0) {
            *ppcVar6 = (char *)0x1;
          }
          else {
            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))
                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);
            if (iVar4 == 0) {
              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);
              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);
              *ppcVar6 = (char *)0x0;
              ppcVar11 = (char **)(iVar4 + -0x1568);
              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);
              if (iVar4 == 0) {
                *bufsize = 0;
              }
              else {
                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);
                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);
                if (iVar4 == 0) {
                  *bufsize = 1;
                }
              }
            }
            else {
              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);
              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);
              if (iVar4 != 0) {
                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);
                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);
                if (iVar4 != 0) {
                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);
                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);
                  if (iVar4 == 0) {
                    *ppcVar6 = (char *)0x3;
                  }
                  else {
                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);
                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);
                    if (iVar4 != 0) goto LAB_0002b8d8;
                    *ppcVar6 = (char *)0x4;
                  }
                  goto LAB_0002b804;
                }
              }
              *ppcVar6 = (char *)0x2;
            }
          }
        }
LAB_0002b804:
        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);
        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);
      }
    }
  }
  if (iStack_1d4 == *piVar15) {
    return uVar5;
  }
  pcVar19 = *(code **)(pcStack_1e0 + -0x785c);
  pcVar20 = ftp_pwd;
  iVar4 = iStack_1d4;
  (*pcVar19)();
  pcStack_220 = pcVar19 + 0x8ba8c;
  piVar16 = *(int **)(pcVar19 + 0x84298);
  iStack_214 = *piVar16;
  uStack_20c = uVar5;
  piStack_208 = piVar15;
  pcStack_204 = pcVar9;
  puStack_200 = bufsize;
  pcStack_1fc = pcVar20;
  buf = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500),(char *)0x0);
  bufsize_00 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(buf);
  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);
  ppcVar7 = buf;
  iVar8 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);
  if (iVar8 < 0) {
    uVar5 = WRITEFAILED;
    (**(code **)(pcStack_220 + -0x7728))(buf);
  }
  else {
    (**(code **)(pcStack_220 + -0x7728))();
    ppcVar7 = &pcStack_218;
    uVar5 = ftp_response(iVar4,ppcVar7);
    if (uVar5 == FTPOK) {
      iVar4 = *(int *)(pcStack_220 + -0x7fc4);
      if (*pcStack_218 != '5') {
        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);
        ppcVar7 = (char **)(iVar4 + -0x3d0);
        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);
        if (iVar4 != 0) {
          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);
          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);
          *ppcVar11 = (char *)0x0;
          pcVar9 = (char *)(*pcVar19)(iVar4);
          pcVar19 = *(code **)(pcStack_220 + -0x7728);
          *ppcVar11 = pcVar9;
          (*pcVar19)(pcStack_218);
          goto LAB_0002bae8;
        }
      }
      uVar5 = FTPSRVERR;
      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);
    }
  }
LAB_0002bae8:
  if (iStack_214 == *piVar16) {
    return uVar5;
  }
  pcVar19 = *(code **)(pcStack_220 + -0x785c);
  pcVar20 = ftp_size;
  iVar8 = iStack_214;
  (*pcVar19)();
  piVar15 = *(int **)(pcVar19 + 0x840f4);
  iStack_254 = *piVar15;
  uStack_250 = uVar5;
  piStack_24c = piVar16;
  iStack_248 = iVar4;
  ppcStack_244 = ppcVar11;
  ppcStack_240 = ppcVar6;
  pcStack_23c = pcVar20;
  pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x83924) + -0x14fc),(char *)ppcVar7);
  iVar4 = (**(code **)(pcVar19 + 0x84120))(pcVar9);
  iVar4 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);
  if (iVar4 < 0) {
    uVar5 = WRITEFAILED;
    (**(code **)(pcVar19 + 0x841c0))(pcVar9);
    *(undefined4 *)((int)bufsize_00 + 4) = 0;
    *(undefined4 *)bufsize_00 = 0;
  }
  else {
    (**(code **)(pcVar19 + 0x841c0))();
    uVar5 = ftp_response(iVar8,&pcStack_258);
    pcVar9 = pcStack_258;
    if (uVar5 == FTPOK) {
      if (*pcStack_258 == '5') {
        pcVar20 = *(code **)(pcVar19 + 0x841c0);
      }
      else {
        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();
        *piVar16 = 0;
        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);
        iVar4 = *piVar16;
        *bufsize_00 = uVar21;
        pcVar20 = *(code **)(pcVar19 + 0x841c0);
        if (iVar4 == 0) {
          (*pcVar20)(pcStack_258);
          goto LAB_0002bc24;
        }
      }
      (*pcVar20)(pcStack_258);
    }
    *(undefined4 *)((int)bufsize_00 + 4) = 0;
    *(undefined4 *)bufsize_00 = 0;
  }
LAB_0002bc24:
  if (iStack_254 == *piVar15) {
    return uVar5;
  }
  pcVar19 = *(code **)(pcVar19 + 0x8408c);
  iVar4 = iStack_254;
  (*pcVar19)();
  if (iVar4 == 0) {
    return 0x49;
  }
  iVar8 = (**(code **)(pcVar19 + 0x83e84))();
  if (iVar8 == 0) {
    uVar5 = (uerr_t)*(char *)(iVar4 + 5);
    if (uVar5 != NOCONERROR) {
      if (uVar5 - 0x61 < 0x1a) {
        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);
      }
      return uVar5;
    }
  }
  return 0x49;
}



int ftp_epsv(char *param_1,int *param_2,int *param_3,uint param_4)

{
  bool bVar1;
  undefined *puVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  char **ppcVar8;
  char **ppcVar9;
  undefined4 *puVar10;
  int iVar11;
  undefined8 *puVar12;
  char *pcVar13;
  int iVar14;
  undefined *puVar15;
  uint uVar16;
  char cVar18;
  char **ppcVar17;
  int iVar19;
  char *pcVar20;
  int iVar21;
  int *piVar22;
  int *piVar23;
  code *pcVar24;
  code *pcVar25;
  undefined8 uVar26;
  char *pcStack_258;
  int iStack_254;
  int iStack_250;
  int *piStack_24c;
  int iStack_248;
  char **ppcStack_244;
  char **ppcStack_240;
  code *pcStack_23c;
  undefined8 uStack_228;
  code *pcStack_220;
  char *pcStack_218;
  int iStack_214;
  int iStack_20c;
  int *piStack_208;
  char *pcStack_204;
  undefined4 *puStack_200;
  code *pcStack_1fc;
  undefined8 uStack_1e8;
  code *pcStack_1e0;
  char *pcStack_1d8;
  int iStack_1d4;
  char **ppcStack_1d0;
  int iStack_1cc;
  int iStack_1c8;
  int iStack_1c4;
  int iStack_1c0;
  char **ppcStack_1bc;
  undefined4 uStack_1b8;
  code *pcStack_1b4;
  undefined8 uStack_1a0;
  code *pcStack_198;
  int iStack_18c;
  undefined4 *puStack_188;
  byte *pbStack_184;
  char *pcStack_180;
  char *pcStack_17c;
  char **ppcStack_178;
  int *piStack_174;
  int iStack_170;
  char *pcStack_16c;
  byte *pbStack_138;
  char *pcStack_120;
  int iStack_11c;
  undefined4 uStack_118;
  int *piStack_114;
  int iStack_110;
  code *pcStack_10c;
  undefined8 uStack_f8;
  code *pcStack_f0;
  int iStack_e4;
  char *pcStack_e0;
  int iStack_dc;
  undefined4 uStack_d8;
  int *piStack_d4;
  int iStack_d0;
  code *pcStack_cc;
  undefined8 uStack_b8;
  code *pcStack_b0;
  int iStack_a4;
  char *pcStack_a0;
  int iStack_9c;
  undefined4 uStack_98;
  int *piStack_94;
  int iStack_90;
  code *pcStack_8c;
  undefined8 uStack_78;
  undefined *puStack_70;
  int iStack_64;
  char *pcStack_5c;
  char acStack_58 [4];
  int iStack_54;
  int iStack_50;
  undefined *puStack_4c;
  int *piStack_48;
  code *pcStack_44;
  undefined8 local_30;
  char *local_20;
  int local_1c;
  
  puVar2 = PTR___stack_chk_guard_000afc3c;
  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;
  if (*param_2 == 2) {
    puVar15 = PTR_DAT_000af498 + -0x6670;
  }
  else {
    puVar15 = PTR_s_hallenge__000af46c + 0x1550;
  }
  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);
  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);
  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);
  uVar7 = uVar3;
  iVar5 = fd_write(param_1,uVar3,uVar4);
  cVar18 = (char)uVar7;
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (*(code *)PTR_free_000afd08)(uVar3);
  }
  else {
    (*(code *)PTR_free_000afd08)();
    cVar18 = (char)&local_20;
    iVar5 = ftp_response(param_1);
    if (iVar5 == 7) {
      param_1 = local_20;
      if (*local_20 == '2') {
        if (PTR_opt_000af488[0x16b] != '\0') {
          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);
          param_1 = local_20;
        }
        cVar18 = '(';
        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);
        puVar15 = PTR_free_000afd08;
        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))
           && (*(char *)(iVar6 + 2) == iVar14)) {
          cVar18 = *(char *)(iVar6 + 3);
          pcVar13 = (char *)(iVar6 + 4);
          if (cVar18 == iVar14) {
            iVar19 = (int)*pcVar13;
            param_4 = iVar19 - 0x30;
            uVar16 = (uint)(param_4 < 10);
            iVar21 = 0;
            if (uVar16 != 0) {
              uVar16 = 0;
              do {
                pcVar20 = pcVar13 + 1;
                uVar16 = (uVar16 + iVar21) * 2;
                iVar21 = param_4 + uVar16;
                if ((char *)(iVar6 + 9) == pcVar20) {
                  iVar19 = (int)pcVar13[1];
                  pcVar13 = (char *)(iVar6 + 9);
                  break;
                }
                iVar19 = (int)*pcVar20;
                param_4 = iVar19 - 0x30;
                uVar16 = iVar21 * 4;
                pcVar13 = pcVar20;
              } while (param_4 < 10);
            }
            cVar18 = (char)uVar16;
            if (iVar14 == iVar19) {
              if (pcVar13[1] == ')') {
                *param_3 = iVar21;
                (*(code *)puVar15)(param_1);
              }
              else {
                iVar5 = 0x1c;
                (*(code *)PTR_free_000afd08)();
              }
              goto LAB_0002ae20;
            }
          }
        }
        iVar5 = 0x1c;
        (*(code *)PTR_free_000afd08)(param_1);
      }
      else {
        iVar5 = 0x1d;
        (*(code *)PTR_free_000afd08)(local_20);
      }
    }
  }
LAB_0002ae20:
  if (local_1c == *(int *)puVar2) {
    return iVar5;
  }
  pcVar24 = ftp_type;
  iVar6 = local_1c;
  puVar15 = PTR___stack_chk_fail_000afbd4;
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  puStack_70 = puVar15 + 0x8c558;
  puStack_4c = puVar2;
  piVar22 = *(int **)(puVar15 + 0x84d64);
  acStack_58[1] = 0;
  iStack_54 = *piVar22;
  acStack_58[0] = cVar18;
  iStack_50 = iVar5;
  piStack_48 = param_3;
  pcStack_44 = pcVar24;
  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);
  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);
  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);
  iVar5 = fd_write(iVar6,uVar7,uVar3);
  if (iVar5 < 0) {
    (**(code **)(puStack_70 + -0x7728))(uVar7);
    iVar5 = 0x2c;
  }
  else {
    (**(code **)(puStack_70 + -0x7728))();
    iVar5 = ftp_response(iVar6,&pcStack_5c);
    if (iVar5 == 7) {
      if (*pcStack_5c == '2') {
        iStack_64 = iVar5;
        (**(code **)(puStack_70 + -0x7728))();
        iVar5 = iStack_64;
      }
      else {
        (**(code **)(puStack_70 + -0x7728))();
        iVar5 = 0xd;
      }
    }
  }
  if (iStack_54 == *piVar22) {
    return iVar5;
  }
  pcVar24 = *(code **)(puStack_70 + -0x785c);
  pcVar25 = ftp_cwd;
  iVar5 = iStack_54;
  (*pcVar24)();
  pcStack_b0 = pcVar24 + 0x8c410;
  piVar23 = *(int **)(pcVar24 + 0x84c1c);
  iStack_9c = *piVar23;
  uStack_98 = uVar7;
  piStack_94 = piVar22;
  iStack_90 = iVar6;
  pcStack_8c = pcVar25;
  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);
  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);
  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);
  iVar6 = fd_write(iVar5,uVar7,uVar3);
  if (iVar6 < 0) {
    (**(code **)(pcStack_b0 + -0x7728))(uVar7);
    iVar6 = 0x2c;
  }
  else {
    (**(code **)(pcStack_b0 + -0x7728))();
    iVar6 = ftp_response(iVar5,&pcStack_a0);
    if (iVar6 == 7) {
      if (*pcStack_a0 == '5') {
        (**(code **)(pcStack_b0 + -0x7728))();
        iVar6 = 0xc;
      }
      else if (*pcStack_a0 == '2') {
        iStack_a4 = iVar6;
        (**(code **)(pcStack_b0 + -0x7728))();
        iVar6 = iStack_a4;
      }
      else {
        (**(code **)(pcStack_b0 + -0x7728))();
        iVar6 = 0xe;
      }
    }
  }
  if (iStack_9c == *piVar23) {
    return iVar6;
  }
  pcVar24 = *(code **)(pcStack_b0 + -0x785c);
  pcVar25 = ftp_rest;
  iVar6 = iStack_9c;
  (*pcVar24)();
  pcStack_f0 = pcVar24 + 0x8c2b4;
  piVar22 = *(int **)(pcVar24 + 0x84ac0);
  iStack_dc = *piVar22;
  uStack_d8 = uVar7;
  piStack_d4 = piVar23;
  iStack_d0 = iVar5;
  pcStack_cc = pcVar25;
  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);
  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);
  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);
  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);
  iVar5 = fd_write(iVar6,uVar7,uVar3);
  if (iVar5 < 0) {
    (**(code **)(pcStack_f0 + -0x7728))(uVar7);
    iVar5 = 0x2c;
  }
  else {
    (**(code **)(pcStack_f0 + -0x7728))();
    iVar5 = ftp_response(iVar6,&pcStack_e0);
    if (iVar5 == 7) {
      if (*pcStack_e0 == '3') {
        iStack_e4 = iVar5;
        (**(code **)(pcStack_f0 + -0x7728))();
        iVar5 = iStack_e4;
      }
      else {
        (**(code **)(pcStack_f0 + -0x7728))();
        iVar5 = 0x11;
      }
    }
  }
  if (iStack_dc == *piVar22) {
    return iVar5;
  }
  pcVar24 = *(code **)(pcStack_f0 + -0x785c);
  pcVar25 = ftp_retr;
  iVar5 = iStack_dc;
  (*pcVar24)();
  piVar23 = *(int **)(pcVar24 + 0x8496c);
  iStack_11c = *piVar23;
  uStack_118 = uVar7;
  piStack_114 = piVar22;
  iStack_110 = iVar6;
  pcStack_10c = pcVar25;
  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);
  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);
  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);
  ppcVar17 = ppcVar8;
  iVar14 = fd_write(iVar5);
  if (iVar14 < 0) {
    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);
    iVar14 = 0x2c;
  }
  else {
    (**(code **)(pcVar24 + 0x84a38))();
    ppcVar17 = &pcStack_120;
    iVar14 = ftp_response(iVar5);
    if (iVar14 == 7) {
      ppcVar17 = (char **)0x31;
      if (*pcStack_120 == '5') {
        (**(code **)(pcVar24 + 0x84a38))();
        iVar14 = 0xc;
      }
      else if (*pcStack_120 == '1') {
        (**(code **)(pcVar24 + 0x84a38))();
      }
      else {
        (**(code **)(pcVar24 + 0x84a38))();
        iVar14 = 0xe;
      }
    }
  }
  if (iStack_11c == *piVar23) {
    return iVar14;
  }
  pcVar24 = *(code **)(pcVar24 + 0x84904);
  iVar14 = iStack_11c;
  (*pcVar24)();
  pcStack_198 = pcVar24 + 0x8c004;
  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);
  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);
  pbStack_184 = pbStack_138;
  pcStack_17c = (char *)*puStack_188;
  *pbStack_138 = 0;
  iVar19 = 0;
  ppcStack_178 = ppcVar8;
  piStack_174 = piVar23;
  iStack_170 = iVar5;
  pcStack_16c = param_1;
  if (iVar6 == 0) {
    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;
  }
  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {
    iVar19 = 1;
    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;
  }
  else {
    iVar19 = 1;
    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);
    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;
  }
  iVar6 = *(int *)(pcStack_198 + -0x7c70);
  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);
  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);
  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;
  do {
    while( true ) {
      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);
      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);
      ppcVar8 = ppcVar9;
      uStack_1a0 = uVar26;
      iVar5 = fd_write(iVar14);
      if (iVar5 < 0) {
        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);
        iVar11 = 0x2c;
        goto LAB_0002b57c;
      }
      ppcVar9 = (char **)(iVar19 + 1);
      (**(code **)(pcStack_198 + -0x7728))();
      ppcVar8 = &pcStack_180;
      iVar11 = ftp_response(iVar14);
      iVar5 = iVar21;
      if (iVar11 != 7) break;
      ppcVar8 = (char **)0x31;
      if (*pcStack_180 == '5') {
        iVar19 = 0;
        iVar11 = 0xc;
      }
      else if (*pcStack_180 == '1') {
        *pbStack_184 = (byte)iVar19 ^ 1;
        iVar19 = 1;
      }
      else {
        iVar19 = 0;
        iVar11 = 0xe;
      }
      iStack_18c = iVar11;
      (**(code **)(pcStack_198 + -0x7728))();
      pcStack_180 = (char *)0x0;
      iVar11 = iStack_18c;
      if (param_4 != 0) goto LAB_0002b570;
      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))
      goto LAB_0002b57c;
    }
    if (param_4 != 0) {
LAB_0002b570:
      if ((ppcVar9 == (char **)&DAT_00000001) &&
         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {
        iStack_18c = iVar11;
        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);
        iVar11 = iStack_18c;
      }
      break;
    }
    iVar19 = 1;
  } while (ppcVar9 == (char **)&DAT_00000001);
LAB_0002b57c:
  if (pcStack_17c == (char *)*puStack_188) {
    return iVar11;
  }
  pcVar24 = *(code **)(pcStack_198 + -0x785c);
  pcVar25 = ftp_syst;
  pcVar13 = pcStack_17c;
  (*pcVar24)();
  pcStack_1e0 = pcVar24 + 0x8bd8c;
  piVar22 = *(int **)(pcVar24 + 0x84598);
  iStack_1d4 = *piVar22;
  ppcStack_1d0 = ppcVar9;
  iStack_1cc = iVar19;
  iStack_1c8 = iVar14;
  iStack_1c4 = iVar6 + -0x6ee0;
  iStack_1c0 = iVar21;
  ppcStack_1bc = ppcVar17;
  uStack_1b8 = uVar7;
  pcStack_1b4 = pcVar25;
  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);
  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);
  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);
  ppcVar17 = ppcVar9;
  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);
  }
  else {
    (**(code **)(pcStack_1e0 + -0x7728))();
    ppcVar17 = &pcStack_1d8;
    iVar5 = ftp_response(pcVar13);
    pcVar20 = pcStack_1d8;
    if (iVar5 == 7) {
      if (*pcStack_1d8 == '5') {
        iVar5 = 0xf;
        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);
        pcVar13 = pcStack_1d8;
      }
      else {
        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);
        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);
        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);
        ppcVar17 = (char **)(iVar6 + 0x4a48);
        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);
        *puVar10 = 2;
        if (pcVar13 == (char *)0x0) {
LAB_0002b8d8:
          *ppcVar8 = (char *)0x5;
        }
        else {
          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);
          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
          if (iVar6 == 0) {
            *ppcVar8 = (char *)0x1;
          }
          else {
            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))
                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);
            if (iVar6 == 0) {
              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);
              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);
              *ppcVar8 = (char *)0x0;
              ppcVar17 = (char **)(iVar6 + -0x1568);
              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);
              if (iVar6 == 0) {
                *puVar10 = 0;
              }
              else {
                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);
                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);
                if (iVar6 == 0) {
                  *puVar10 = 1;
                }
              }
            }
            else {
              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);
              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
              if (iVar6 != 0) {
                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);
                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
                if (iVar6 != 0) {
                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);
                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
                  if (iVar6 == 0) {
                    *ppcVar8 = (char *)0x3;
                  }
                  else {
                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);
                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
                    if (iVar6 != 0) goto LAB_0002b8d8;
                    *ppcVar8 = (char *)0x4;
                  }
                  goto LAB_0002b804;
                }
              }
              *ppcVar8 = (char *)0x2;
            }
          }
        }
LAB_0002b804:
        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);
        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);
      }
    }
  }
  if (iStack_1d4 == *piVar22) {
    return iVar5;
  }
  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);
  pcVar25 = ftp_pwd;
  iVar6 = iStack_1d4;
  (*pcVar24)();
  pcStack_220 = pcVar24 + 0x8ba8c;
  piVar23 = *(int **)(pcVar24 + 0x84298);
  iStack_214 = *piVar23;
  iStack_20c = iVar5;
  piStack_208 = piVar22;
  pcStack_204 = pcVar13;
  puStack_200 = puVar10;
  pcStack_1fc = pcVar25;
  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);
  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);
  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);
  iVar5 = fd_write(iVar6,uVar7);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcStack_220 + -0x7728))(uVar7);
  }
  else {
    (**(code **)(pcStack_220 + -0x7728))();
    iVar5 = ftp_response(iVar6,&pcStack_218);
    if (iVar5 == 7) {
      iVar6 = *(int *)(pcStack_220 + -0x7fc4);
      if (*pcStack_218 != '5') {
        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);
        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);
        if (iVar6 != 0) {
          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);
          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);
          *ppcVar17 = (char *)0x0;
          pcVar13 = (char *)(*pcVar24)(iVar6);
          pcVar24 = *(code **)(pcStack_220 + -0x7728);
          *ppcVar17 = pcVar13;
          (*pcVar24)(pcStack_218);
          goto LAB_0002bae8;
        }
      }
      iVar5 = 0xf;
      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);
    }
  }
LAB_0002bae8:
  if (iStack_214 == *piVar23) {
    return iVar5;
  }
  pcVar24 = *(code **)(pcStack_220 + -0x785c);
  pcVar25 = ftp_size;
  iVar14 = iStack_214;
  (*pcVar24)();
  piVar22 = *(int **)(pcVar24 + 0x840f4);
  iStack_254 = *piVar22;
  iStack_250 = iVar5;
  piStack_24c = piVar23;
  iStack_248 = iVar6;
  ppcStack_244 = ppcVar17;
  ppcStack_240 = ppcVar8;
  pcStack_23c = pcVar25;
  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);
  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);
  iVar5 = fd_write(iVar14,uVar7,uVar3);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcVar24 + 0x841c0))(uVar7);
    *(undefined4 *)((int)puVar12 + 4) = 0;
    *(undefined4 *)puVar12 = 0;
  }
  else {
    (**(code **)(pcVar24 + 0x841c0))();
    iVar5 = ftp_response(iVar14,&pcStack_258);
    pcVar13 = pcStack_258;
    if (iVar5 == 7) {
      if (*pcStack_258 == '5') {
        pcVar25 = *(code **)(pcVar24 + 0x841c0);
      }
      else {
        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();
        *piVar23 = 0;
        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);
        iVar6 = *piVar23;
        *puVar12 = uVar26;
        pcVar25 = *(code **)(pcVar24 + 0x841c0);
        if (iVar6 == 0) {
          (*pcVar25)(pcStack_258);
          goto LAB_0002bc24;
        }
      }
      (*pcVar25)(pcStack_258);
    }
    *(undefined4 *)((int)puVar12 + 4) = 0;
    *(undefined4 *)puVar12 = 0;
  }
LAB_0002bc24:
  if (iStack_254 == *piVar22) {
    return iVar5;
  }
  pcVar24 = *(code **)(pcVar24 + 0x8408c);
  iVar5 = iStack_254;
  (*pcVar24)();
  if (iVar5 == 0) {
    return 0x49;
  }
  iVar6 = (**(code **)(pcVar24 + 0x83e84))();
  if (iVar6 == 0) {
    iVar6 = (int)*(char *)(iVar5 + 5);
    if (iVar6 != 0) {
      if (iVar6 - 0x61U < 0x1a) {
        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);
      }
      return iVar6;
    }
  }
  return 0x49;
}


lui gp,0x9
addiu gp,gp,-0x3840
addu gp,gp,t9
addiu sp,sp,-0x40
lw v1,0x0(a1)
li v0,0x2
sw s1,0x30(sp)
sw s3,0x38(sp)
or s3,a0,zero
lw s1,-0x77f4(gp)
sw gp,0x18(sp)
sw s2,0x34(sp)
or s2,a2,zero
sw ra,0x3c(sp)
sw s0,0x2c(sp)
lw a0,0x0(s1)
sw a0,0x24(sp)
beq v1,v0,0x0002ae4c
_lw a1,-0x7f98(gp)
lw a1,-0x7fc4(gp)
addiu a1,a1,0x1550
lw a0,-0x7fc4(gp)
lw t9,-0x7c70(gp)
addiu t9,t9,-0x6ee0
bal 0x00029120
_addiu a0,a0,-0x15ec
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x77c8(gp)
jalr t9
_or s0,v0,zero
or a0,s3,zero
lw gp,0x18(sp)
or a2,v0,zero
or a1,s0,zero
lw v0,-0x7fc8(gp)
lw t9,-0x7c5c(gp)
ldc1 f0,0x40b8(v0)
bal 0x0001c0c4
_sdc1 f0,0x10(sp)
or a0,s0,zero
lw gp,0x18(sp)
bltz v0,0x0002ae6c
_lw t9,-0x7728(gp)
jalr t9
_nop
addiu a1,sp,0x20
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
bal 0x00029394
_or a0,s3,zero
li v1,0x7
lw gp,0x18(sp)
bne v0,v1,0x0002ae20
_or s0,v0,zero
lw s3,0x20(sp)
li v0,0x32
lb v1,0x0(s3)
bne v1,v0,0x0002ae8c
_lw v0,-0x7fa8(gp)
lbu v0,0x16b(v0)
bne v0,zero,0x0002aeb0
_lw a0,-0x7fc4(gp)
lw t9,-0x7668(gp)
li a1,0x28
jalr t9
_or a0,s3,zero
beq v0,zero,0x0002ae54
_lw gp,0x18(sp)
lb a0,0x1(v0)
addiu v1,a0,-0x21
andi v1,v1,0xff
sltiu v1,v1,0x5e
beq v1,zero,0x0002ae58
_lw t9,-0x7728(gp)
lb v1,0x2(v0)
bne v1,a0,0x0002ae58
_nop
lb a1,0x3(v0)
bne a1,a0,0x0002ae58
_addiu v1,v0,0x4
lb a2,0x0(v1)
addiu v0,v0,0x9
addiu a3,a2,-0x30
sltiu a1,a3,0xa
beq a1,zero,0x0002adfc
_or t0,zero,zero
sll a1,t0,0x2
addiu a2,v1,0x1
addu a1,a1,t0
sll a1,a1,0x1
beq v0,a2,0x0002aea4
_addu t0,a3,a1
or v1,a2,zero
lb a2,0x0(v1)
addiu a3,a2,-0x30
sltiu a1,a3,0xa
bne a1,zero,0x0002add0
_sll a1,t0,0x2
bne a0,a2,0x0002ae54
_li v0,0x29
lb v1,0x1(v1)
lw t9,-0x7728(gp)
beq v1,v0,0x0002ae7c
_or a0,s3,zero
jalr t9
_li s0,0x1c
lw gp,0x18(sp)
lw a0,0x24(sp)
or v0,s0,zero
lw v1,0x0(s1)
bne a0,v1,0x0002aecc
_lw ra,0x3c(sp)
lw s3,0x38(sp)
lw s2,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x40
b 0x0002acc4
_addiu a1,a1,-0x6670
lw t9,-0x7728(gp)
or a0,s3,zero
jalr t9
_li s0,0x1c
b 0x0002ae20
_lw gp,0x18(sp)
jalr t9
_li s0,0x2c
b 0x0002ae20
_lw gp,0x18(sp)
jalr t9
_sw t0,0x0(s2)
b 0x0002ae20
_lw gp,0x18(sp)
lw t9,-0x7728(gp)
or a0,s3,zero
jalr t9
_li s0,0x1d
b 0x0002ae20
_lw gp,0x18(sp)
lb a2,0x1(v1)
b 0x0002adfc
_or v1,v0,zero
or a1,s3,zero
lw t9,-0x7ef4(gp)
bal 0x00043764
_addiu a0,a0,-0x15e4
lw gp,0x18(sp)
b 0x0002ad6c
_lw s3,0x20(sp)
lw t9,-0x785c(gp)
jalr t9
_nop
(translation_unit "int ftp_epsv(char *param_1,int *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char **ppcVar8;\n  char **ppcVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  int iVar14;\n  undefined *puVar15;\n  uint uVar16;\n  char cVar18;\n  char **ppcVar17;\n  int iVar19;\n  char *pcVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined8 uVar26;\n  char *pcStack_258;\n  int iStack_254;\n  int iStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  int iStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  int iStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  int iStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  undefined4 uStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  int iStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  int iStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  int iStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  int iStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *local_20;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);\n  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  uVar7 = uVar3;\n  iVar5 = fd_write(param_1,uVar3,uVar4);\n  cVar18 = (char)uVar7;\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }\n  pcVar24 = ftp_type;\n  iVar6 = local_1c;\n  puVar15 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar15 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar22 = *(int **)(puVar15 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar22;\n  acStack_58[0] = cVar18;\n  iStack_50 = iVar5;\n  piStack_48 = param_3;\n  pcStack_44 = pcVar24;\n  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);\n  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }\n  if (iStack_54 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puStack_70 + -0x785c);\n  pcVar25 = ftp_cwd;\n  iVar5 = iStack_54;\n  (*pcVar24)();\n  pcStack_b0 = pcVar24 + 0x8c410;\n  piVar23 = *(int **)(pcVar24 + 0x84c1c);\n  iStack_9c = *piVar23;\n  uStack_98 = uVar7;\n  piStack_94 = piVar22;\n  iStack_90 = iVar6;\n  pcStack_8c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);\n  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar6 = fd_write(iVar5,uVar7,uVar3);\n  if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (iStack_9c == *piVar23) {\n    return iVar6;\n  }\n  pcVar24 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar25 = ftp_rest;\n  iVar6 = iStack_9c;\n  (*pcVar24)();\n  pcStack_f0 = pcVar24 + 0x8c2b4;\n  piVar22 = *(int **)(pcVar24 + 0x84ac0);\n  iStack_dc = *piVar22;\n  uStack_d8 = uVar7;\n  piStack_d4 = piVar23;\n  iStack_d0 = iVar5;\n  pcStack_cc = pcVar25;\n  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);\n  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);\n  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }\n  if (iStack_dc == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar25 = ftp_retr;\n  iVar5 = iStack_dc;\n  (*pcVar24)();\n  piVar23 = *(int **)(pcVar24 + 0x8496c);\n  iStack_11c = *piVar23;\n  uStack_118 = uVar7;\n  piStack_114 = piVar22;\n  iStack_110 = iVar6;\n  pcStack_10c = pcVar25;\n  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);\n  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);\n  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);\n  ppcVar17 = ppcVar8;\n  iVar14 = fd_write(iVar5);\n  if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }\n  if (iStack_11c == *piVar23) {\n    return iVar14;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x84904);\n  iVar14 = iStack_11c;\n  (*pcVar24)();\n  pcStack_198 = pcVar24 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar19 = 0;\n  ppcStack_178 = ppcVar8;\n  piStack_174 = piVar23;\n  iStack_170 = iVar5;\n  pcStack_16c = param_1;\n  if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }\n  iVar6 = *(int *)(pcStack_198 + -0x7c70);\n  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }\n  pcVar24 = *(code **)(pcStack_198 + -0x785c);\n  pcVar25 = ftp_syst;\n  pcVar13 = pcStack_17c;\n  (*pcVar24)();\n  pcStack_1e0 = pcVar24 + 0x8bd8c;\n  piVar22 = *(int **)(pcVar24 + 0x84598);\n  iStack_1d4 = *piVar22;\n  ppcStack_1d0 = ppcVar9;\n  iStack_1cc = iVar19;\n  iStack_1c8 = iVar14;\n  iStack_1c4 = iVar6 + -0x6ee0;\n  iStack_1c0 = iVar21;\n  ppcStack_1bc = ppcVar17;\n  uStack_1b8 = uVar7;\n  pcStack_1b4 = pcVar25;\n  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);\n  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar17 = ppcVar9;\n  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar25 = ftp_pwd;\n  iVar6 = iStack_1d4;\n  (*pcVar24)();\n  pcStack_220 = pcVar24 + 0x8ba8c;\n  piVar23 = *(int **)(pcVar24 + 0x84298);\n  iStack_214 = *piVar23;\n  iStack_20c = iVar5;\n  piStack_208 = piVar22;\n  pcStack_204 = pcVar13;\n  puStack_200 = puVar10;\n  pcStack_1fc = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);\n  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_220 + -0x785c);\n  pcVar25 = ftp_size;\n  iVar14 = iStack_214;\n  (*pcVar24)();\n  piVar22 = *(int **)(pcVar24 + 0x840f4);\n  iStack_254 = *piVar22;\n  iStack_250 = iVar5;\n  piStack_24c = piVar23;\n  iStack_248 = iVar6;\n  ppcStack_244 = ppcVar17;\n  ppcStack_240 = ppcVar8;\n  pcStack_23c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);\n  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);\n  iVar5 = fd_write(iVar14,uVar7,uVar3);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x8408c);\n  iVar5 = iStack_254;\n  (*pcVar24)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar24 + 0x83e84))();\n  if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }\n  return 0x49;\n}\n\n" (function_definition "int ftp_epsv(char *param_1,int *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char **ppcVar8;\n  char **ppcVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  int iVar14;\n  undefined *puVar15;\n  uint uVar16;\n  char cVar18;\n  char **ppcVar17;\n  int iVar19;\n  char *pcVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined8 uVar26;\n  char *pcStack_258;\n  int iStack_254;\n  int iStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  int iStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  int iStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  int iStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  undefined4 uStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  int iStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  int iStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  int iStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  int iStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *local_20;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);\n  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  uVar7 = uVar3;\n  iVar5 = fd_write(param_1,uVar3,uVar4);\n  cVar18 = (char)uVar7;\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }\n  pcVar24 = ftp_type;\n  iVar6 = local_1c;\n  puVar15 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar15 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar22 = *(int **)(puVar15 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar22;\n  acStack_58[0] = cVar18;\n  iStack_50 = iVar5;\n  piStack_48 = param_3;\n  pcStack_44 = pcVar24;\n  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);\n  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }\n  if (iStack_54 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puStack_70 + -0x785c);\n  pcVar25 = ftp_cwd;\n  iVar5 = iStack_54;\n  (*pcVar24)();\n  pcStack_b0 = pcVar24 + 0x8c410;\n  piVar23 = *(int **)(pcVar24 + 0x84c1c);\n  iStack_9c = *piVar23;\n  uStack_98 = uVar7;\n  piStack_94 = piVar22;\n  iStack_90 = iVar6;\n  pcStack_8c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);\n  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar6 = fd_write(iVar5,uVar7,uVar3);\n  if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (iStack_9c == *piVar23) {\n    return iVar6;\n  }\n  pcVar24 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar25 = ftp_rest;\n  iVar6 = iStack_9c;\n  (*pcVar24)();\n  pcStack_f0 = pcVar24 + 0x8c2b4;\n  piVar22 = *(int **)(pcVar24 + 0x84ac0);\n  iStack_dc = *piVar22;\n  uStack_d8 = uVar7;\n  piStack_d4 = piVar23;\n  iStack_d0 = iVar5;\n  pcStack_cc = pcVar25;\n  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);\n  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);\n  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }\n  if (iStack_dc == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar25 = ftp_retr;\n  iVar5 = iStack_dc;\n  (*pcVar24)();\n  piVar23 = *(int **)(pcVar24 + 0x8496c);\n  iStack_11c = *piVar23;\n  uStack_118 = uVar7;\n  piStack_114 = piVar22;\n  iStack_110 = iVar6;\n  pcStack_10c = pcVar25;\n  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);\n  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);\n  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);\n  ppcVar17 = ppcVar8;\n  iVar14 = fd_write(iVar5);\n  if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }\n  if (iStack_11c == *piVar23) {\n    return iVar14;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x84904);\n  iVar14 = iStack_11c;\n  (*pcVar24)();\n  pcStack_198 = pcVar24 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar19 = 0;\n  ppcStack_178 = ppcVar8;\n  piStack_174 = piVar23;\n  iStack_170 = iVar5;\n  pcStack_16c = param_1;\n  if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }\n  iVar6 = *(int *)(pcStack_198 + -0x7c70);\n  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }\n  pcVar24 = *(code **)(pcStack_198 + -0x785c);\n  pcVar25 = ftp_syst;\n  pcVar13 = pcStack_17c;\n  (*pcVar24)();\n  pcStack_1e0 = pcVar24 + 0x8bd8c;\n  piVar22 = *(int **)(pcVar24 + 0x84598);\n  iStack_1d4 = *piVar22;\n  ppcStack_1d0 = ppcVar9;\n  iStack_1cc = iVar19;\n  iStack_1c8 = iVar14;\n  iStack_1c4 = iVar6 + -0x6ee0;\n  iStack_1c0 = iVar21;\n  ppcStack_1bc = ppcVar17;\n  uStack_1b8 = uVar7;\n  pcStack_1b4 = pcVar25;\n  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);\n  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar17 = ppcVar9;\n  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar25 = ftp_pwd;\n  iVar6 = iStack_1d4;\n  (*pcVar24)();\n  pcStack_220 = pcVar24 + 0x8ba8c;\n  piVar23 = *(int **)(pcVar24 + 0x84298);\n  iStack_214 = *piVar23;\n  iStack_20c = iVar5;\n  piStack_208 = piVar22;\n  pcStack_204 = pcVar13;\n  puStack_200 = puVar10;\n  pcStack_1fc = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);\n  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_220 + -0x785c);\n  pcVar25 = ftp_size;\n  iVar14 = iStack_214;\n  (*pcVar24)();\n  piVar22 = *(int **)(pcVar24 + 0x840f4);\n  iStack_254 = *piVar22;\n  iStack_250 = iVar5;\n  piStack_24c = piVar23;\n  iStack_248 = iVar6;\n  ppcStack_244 = ppcVar17;\n  ppcStack_240 = ppcVar8;\n  pcStack_23c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);\n  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);\n  iVar5 = fd_write(iVar14,uVar7,uVar3);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x8408c);\n  iVar5 = iStack_254;\n  (*pcVar24)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar24 + 0x83e84))();\n  if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }\n  return 0x49;\n}" primitive_type (function_declarator "ftp_epsv(char *param_1,int *param_2,int *param_3,uint param_4)" identifier (parameter_list "(char *param_1,int *param_2,int *param_3,uint param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char **ppcVar8;\n  char **ppcVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  int iVar14;\n  undefined *puVar15;\n  uint uVar16;\n  char cVar18;\n  char **ppcVar17;\n  int iVar19;\n  char *pcVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined8 uVar26;\n  char *pcStack_258;\n  int iStack_254;\n  int iStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  int iStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  int iStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  int iStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  undefined4 uStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  int iStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  int iStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  int iStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  int iStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *local_20;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);\n  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  uVar7 = uVar3;\n  iVar5 = fd_write(param_1,uVar3,uVar4);\n  cVar18 = (char)uVar7;\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }\n  pcVar24 = ftp_type;\n  iVar6 = local_1c;\n  puVar15 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar15 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar22 = *(int **)(puVar15 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar22;\n  acStack_58[0] = cVar18;\n  iStack_50 = iVar5;\n  piStack_48 = param_3;\n  pcStack_44 = pcVar24;\n  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);\n  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }\n  if (iStack_54 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puStack_70 + -0x785c);\n  pcVar25 = ftp_cwd;\n  iVar5 = iStack_54;\n  (*pcVar24)();\n  pcStack_b0 = pcVar24 + 0x8c410;\n  piVar23 = *(int **)(pcVar24 + 0x84c1c);\n  iStack_9c = *piVar23;\n  uStack_98 = uVar7;\n  piStack_94 = piVar22;\n  iStack_90 = iVar6;\n  pcStack_8c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);\n  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar6 = fd_write(iVar5,uVar7,uVar3);\n  if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (iStack_9c == *piVar23) {\n    return iVar6;\n  }\n  pcVar24 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar25 = ftp_rest;\n  iVar6 = iStack_9c;\n  (*pcVar24)();\n  pcStack_f0 = pcVar24 + 0x8c2b4;\n  piVar22 = *(int **)(pcVar24 + 0x84ac0);\n  iStack_dc = *piVar22;\n  uStack_d8 = uVar7;\n  piStack_d4 = piVar23;\n  iStack_d0 = iVar5;\n  pcStack_cc = pcVar25;\n  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);\n  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);\n  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }\n  if (iStack_dc == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar25 = ftp_retr;\n  iVar5 = iStack_dc;\n  (*pcVar24)();\n  piVar23 = *(int **)(pcVar24 + 0x8496c);\n  iStack_11c = *piVar23;\n  uStack_118 = uVar7;\n  piStack_114 = piVar22;\n  iStack_110 = iVar6;\n  pcStack_10c = pcVar25;\n  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);\n  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);\n  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);\n  ppcVar17 = ppcVar8;\n  iVar14 = fd_write(iVar5);\n  if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }\n  if (iStack_11c == *piVar23) {\n    return iVar14;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x84904);\n  iVar14 = iStack_11c;\n  (*pcVar24)();\n  pcStack_198 = pcVar24 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar19 = 0;\n  ppcStack_178 = ppcVar8;\n  piStack_174 = piVar23;\n  iStack_170 = iVar5;\n  pcStack_16c = param_1;\n  if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }\n  iVar6 = *(int *)(pcStack_198 + -0x7c70);\n  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }\n  pcVar24 = *(code **)(pcStack_198 + -0x785c);\n  pcVar25 = ftp_syst;\n  pcVar13 = pcStack_17c;\n  (*pcVar24)();\n  pcStack_1e0 = pcVar24 + 0x8bd8c;\n  piVar22 = *(int **)(pcVar24 + 0x84598);\n  iStack_1d4 = *piVar22;\n  ppcStack_1d0 = ppcVar9;\n  iStack_1cc = iVar19;\n  iStack_1c8 = iVar14;\n  iStack_1c4 = iVar6 + -0x6ee0;\n  iStack_1c0 = iVar21;\n  ppcStack_1bc = ppcVar17;\n  uStack_1b8 = uVar7;\n  pcStack_1b4 = pcVar25;\n  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);\n  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar17 = ppcVar9;\n  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar25 = ftp_pwd;\n  iVar6 = iStack_1d4;\n  (*pcVar24)();\n  pcStack_220 = pcVar24 + 0x8ba8c;\n  piVar23 = *(int **)(pcVar24 + 0x84298);\n  iStack_214 = *piVar23;\n  iStack_20c = iVar5;\n  piStack_208 = piVar22;\n  pcStack_204 = pcVar13;\n  puStack_200 = puVar10;\n  pcStack_1fc = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);\n  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_220 + -0x785c);\n  pcVar25 = ftp_size;\n  iVar14 = iStack_214;\n  (*pcVar24)();\n  piVar22 = *(int **)(pcVar24 + 0x840f4);\n  iStack_254 = *piVar22;\n  iStack_250 = iVar5;\n  piStack_24c = piVar23;\n  iStack_248 = iVar6;\n  ppcStack_244 = ppcVar17;\n  ppcStack_240 = ppcVar8;\n  pcStack_23c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);\n  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);\n  iVar5 = fd_write(iVar14,uVar7,uVar3);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x8408c);\n  iVar5 = iStack_254;\n  (*pcVar24)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar24 + 0x83e84))();\n  if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }\n  return 0x49;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char **ppcVar8;" primitive_type (pointer_declarator "**ppcVar8" * (pointer_declarator "*ppcVar8" * identifier)) ;) (declaration "char **ppcVar9;" primitive_type (pointer_declarator "**ppcVar9" * (pointer_declarator "*ppcVar9" * identifier)) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "char cVar18;" primitive_type identifier ;) (declaration "char **ppcVar17;" primitive_type (pointer_declarator "**ppcVar17" * (pointer_declarator "*ppcVar17" * identifier)) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "undefined8 uVar26;" type_identifier identifier ;) (declaration "char *pcStack_258;" primitive_type (pointer_declarator "*pcStack_258" * identifier) ;) (declaration "int iStack_254;" primitive_type identifier ;) (declaration "int iStack_250;" primitive_type identifier ;) (declaration "int *piStack_24c;" primitive_type (pointer_declarator "*piStack_24c" * identifier) ;) (declaration "int iStack_248;" primitive_type identifier ;) (declaration "char **ppcStack_244;" primitive_type (pointer_declarator "**ppcStack_244" * (pointer_declarator "*ppcStack_244" * identifier)) ;) (declaration "char **ppcStack_240;" primitive_type (pointer_declarator "**ppcStack_240" * (pointer_declarator "*ppcStack_240" * identifier)) ;) (declaration "code *pcStack_23c;" type_identifier (pointer_declarator "*pcStack_23c" * identifier) ;) (declaration "undefined8 uStack_228;" type_identifier identifier ;) (declaration "code *pcStack_220;" type_identifier (pointer_declarator "*pcStack_220" * identifier) ;) (declaration "char *pcStack_218;" primitive_type (pointer_declarator "*pcStack_218" * identifier) ;) (declaration "int iStack_214;" primitive_type identifier ;) (declaration "int iStack_20c;" primitive_type identifier ;) (declaration "int *piStack_208;" primitive_type (pointer_declarator "*piStack_208" * identifier) ;) (declaration "char *pcStack_204;" primitive_type (pointer_declarator "*pcStack_204" * identifier) ;) (declaration "undefined4 *puStack_200;" type_identifier (pointer_declarator "*puStack_200" * identifier) ;) (declaration "code *pcStack_1fc;" type_identifier (pointer_declarator "*pcStack_1fc" * identifier) ;) (declaration "undefined8 uStack_1e8;" type_identifier identifier ;) (declaration "code *pcStack_1e0;" type_identifier (pointer_declarator "*pcStack_1e0" * identifier) ;) (declaration "char *pcStack_1d8;" primitive_type (pointer_declarator "*pcStack_1d8" * identifier) ;) (declaration "int iStack_1d4;" primitive_type identifier ;) (declaration "char **ppcStack_1d0;" primitive_type (pointer_declarator "**ppcStack_1d0" * (pointer_declarator "*ppcStack_1d0" * identifier)) ;) (declaration "int iStack_1cc;" primitive_type identifier ;) (declaration "int iStack_1c8;" primitive_type identifier ;) (declaration "int iStack_1c4;" primitive_type identifier ;) (declaration "int iStack_1c0;" primitive_type identifier ;) (declaration "char **ppcStack_1bc;" primitive_type (pointer_declarator "**ppcStack_1bc" * (pointer_declarator "*ppcStack_1bc" * identifier)) ;) (declaration "undefined4 uStack_1b8;" type_identifier identifier ;) (declaration "code *pcStack_1b4;" type_identifier (pointer_declarator "*pcStack_1b4" * identifier) ;) (declaration "undefined8 uStack_1a0;" type_identifier identifier ;) (declaration "code *pcStack_198;" type_identifier (pointer_declarator "*pcStack_198" * identifier) ;) (declaration "int iStack_18c;" primitive_type identifier ;) (declaration "undefined4 *puStack_188;" type_identifier (pointer_declarator "*puStack_188" * identifier) ;) (declaration "byte *pbStack_184;" type_identifier (pointer_declarator "*pbStack_184" * identifier) ;) (declaration "char *pcStack_180;" primitive_type (pointer_declarator "*pcStack_180" * identifier) ;) (declaration "char *pcStack_17c;" primitive_type (pointer_declarator "*pcStack_17c" * identifier) ;) (declaration "char **ppcStack_178;" primitive_type (pointer_declarator "**ppcStack_178" * (pointer_declarator "*ppcStack_178" * identifier)) ;) (declaration "int *piStack_174;" primitive_type (pointer_declarator "*piStack_174" * identifier) ;) (declaration "int iStack_170;" primitive_type identifier ;) (declaration "char *pcStack_16c;" primitive_type (pointer_declarator "*pcStack_16c" * identifier) ;) (declaration "byte *pbStack_138;" type_identifier (pointer_declarator "*pbStack_138" * identifier) ;) (declaration "char *pcStack_120;" primitive_type (pointer_declarator "*pcStack_120" * identifier) ;) (declaration "int iStack_11c;" primitive_type identifier ;) (declaration "undefined4 uStack_118;" type_identifier identifier ;) (declaration "int *piStack_114;" primitive_type (pointer_declarator "*piStack_114" * identifier) ;) (declaration "int iStack_110;" primitive_type identifier ;) (declaration "code *pcStack_10c;" type_identifier (pointer_declarator "*pcStack_10c" * identifier) ;) (declaration "undefined8 uStack_f8;" type_identifier identifier ;) (declaration "code *pcStack_f0;" type_identifier (pointer_declarator "*pcStack_f0" * identifier) ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "char *pcStack_e0;" primitive_type (pointer_declarator "*pcStack_e0" * identifier) ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "code *pcStack_cc;" type_identifier (pointer_declarator "*pcStack_cc" * identifier) ;) (declaration "undefined8 uStack_b8;" type_identifier identifier ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "char *pcStack_a0;" primitive_type (pointer_declarator "*pcStack_a0" * identifier) ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "undefined4 uStack_98;" type_identifier identifier ;) (declaration "int *piStack_94;" primitive_type (pointer_declarator "*piStack_94" * identifier) ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "code *pcStack_8c;" type_identifier (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "undefined8 uStack_78;" type_identifier identifier ;) (declaration "undefined *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "char *pcStack_5c;" primitive_type (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "char acStack_58 [4];" primitive_type (array_declarator "acStack_58 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "undefined *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "int *piStack_48;" primitive_type (pointer_declarator "*piStack_48" * identifier) ;) (declaration "code *pcStack_44;" type_identifier (pointer_declarator "*pcStack_44" * identifier) ;) (declaration "undefined8 local_30;" type_identifier identifier ;) (declaration "char *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000afc3c" * (cast_expression "(int *)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }" if (parenthesized_expression "(*param_2 == 2)" ( (binary_expression "*param_2 == 2" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }" { (expression_statement "puVar15 = PTR_DAT_000af498 + -0x6670;" (assignment_expression "puVar15 = PTR_DAT_000af498 + -0x6670" identifier = (binary_expression "PTR_DAT_000af498 + -0x6670" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }" else (compound_statement "{\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }" { (expression_statement "puVar15 = PTR_s_hallenge__000af46c + 0x1550;" (assignment_expression "puVar15 = PTR_s_hallenge__000af46c + 0x1550" identifier = (binary_expression "PTR_s_hallenge__000af46c + 0x1550" identifier + number_literal)) ;) }))) (expression_statement "uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);" (assignment_expression "uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15)" identifier = (call_expression "FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15)" identifier (argument_list "(PTR_s_hallenge__000af46c + -0x15ec,puVar15)" ( (binary_expression "PTR_s_hallenge__000af46c + -0x15ec" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000afc68)(uVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000afc68)" ( (pointer_expression "*(code *)PTR_strlen_000afc68" * (cast_expression "(code *)PTR_strlen_000afc68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);" (assignment_expression "local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" * (cast_expression "(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000af468 + 0x40b8)" ( (binary_expression "PTR_LAB_000af468 + 0x40b8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = uVar3;" (assignment_expression "uVar7 = uVar3" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(param_1,uVar3,uVar4);" (assignment_expression "iVar5 = fd_write(param_1,uVar3,uVar4)" identifier = (call_expression "fd_write(param_1,uVar3,uVar4)" identifier (argument_list "(param_1,uVar3,uVar4)" ( identifier , identifier , identifier )))) ;) (expression_statement "cVar18 = (char)uVar7;" (assignment_expression "cVar18 = (char)uVar7" identifier = (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000afd08)(uVar3);" (call_expression "(*(code *)PTR_free_000afd08)(uVar3)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3)" ( identifier ))) ;) }) (else_clause "else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }" else (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }" { (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "cVar18 = (char)&local_20;" (assignment_expression "cVar18 = (char)&local_20" identifier = (cast_expression "(char)&local_20" ( (type_descriptor "char" primitive_type) ) (pointer_expression "&local_20" & identifier))) ;) (expression_statement "iVar5 = ftp_response(param_1);" (assignment_expression "iVar5 = ftp_response(param_1)" identifier = (call_expression "ftp_response(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }" { (expression_statement "param_1 = local_20;" (assignment_expression "param_1 = local_20" identifier = identifier) ;) (if_statement "if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }" if (parenthesized_expression "(*local_20 == '2')" ( (binary_expression "*local_20 == '2'" (pointer_expression "*local_20" * identifier) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }" { (if_statement "if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }" if (parenthesized_expression "(PTR_opt_000af488[0x16b] != '\0')" ( (binary_expression "PTR_opt_000af488[0x16b] != '\0'" (subscript_expression "PTR_opt_000af488[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }" { (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20)" identifier (argument_list "(PTR_s_hallenge__000af46c + -0x15e4,local_20)" ( (binary_expression "PTR_s_hallenge__000af46c + -0x15e4" identifier + number_literal) , identifier ))) ;) (expression_statement "param_1 = local_20;" (assignment_expression "param_1 = local_20" identifier = identifier) ;) })) (expression_statement "cVar18 = '(';" (assignment_expression "cVar18 = '('" identifier = (char_literal "'('" ' character ')) ;) (expression_statement "iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);" (assignment_expression "iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1)" identifier = (call_expression "(*(code *)PTR_strchr_000afdc8)(param_1)" (parenthesized_expression "(*(code *)PTR_strchr_000afdc8)" ( (pointer_expression "*(code *)PTR_strchr_000afdc8" * (cast_expression "(code *)PTR_strchr_000afdc8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar15 = PTR_free_000afd08;" (assignment_expression "puVar15 = PTR_free_000afd08" identifier = identifier) ;) (if_statement "if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }" if (parenthesized_expression "(((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14))" ( (binary_expression "((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)" (parenthesized_expression "((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))" ( (binary_expression "(iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e)" ( (comma_expression "iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e" (assignment_expression "iVar14 = (int)*(char *)(iVar6 + 1)" identifier = (cast_expression "(int)*(char *)(iVar6 + 1)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar6 + 1)" * (cast_expression "(char *)(iVar6 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )))))) , (binary_expression "(iVar14 - 0x21U & 0xff) < 0x5e" (parenthesized_expression "(iVar14 - 0x21U & 0xff)" ( (binary_expression "iVar14 - 0x21U & 0xff" (binary_expression "iVar14 - 0x21U" identifier - number_literal) & number_literal) )) < number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar6 + 2) == iVar14)" ( (binary_expression "*(char *)(iVar6 + 2) == iVar14" (pointer_expression "*(char *)(iVar6 + 2)" * (cast_expression "(char *)(iVar6 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 2)" ( (binary_expression "iVar6 + 2" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }" { (expression_statement "cVar18 = *(char *)(iVar6 + 3);" (assignment_expression "cVar18 = *(char *)(iVar6 + 3)" identifier = (pointer_expression "*(char *)(iVar6 + 3)" * (cast_expression "(char *)(iVar6 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 3)" ( (binary_expression "iVar6 + 3" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (char *)(iVar6 + 4);" (assignment_expression "pcVar13 = (char *)(iVar6 + 4)" identifier = (cast_expression "(char *)(iVar6 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) ;) (if_statement "if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }" if (parenthesized_expression "(cVar18 == iVar14)" ( (binary_expression "cVar18 == iVar14" identifier == identifier) )) (compound_statement "{\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }" { (expression_statement "iVar19 = (int)*pcVar13;" (assignment_expression "iVar19 = (int)*pcVar13" identifier = (cast_expression "(int)*pcVar13" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar13" * identifier))) ;) (expression_statement "param_4 = iVar19 - 0x30;" (assignment_expression "param_4 = iVar19 - 0x30" identifier = (binary_expression "iVar19 - 0x30" identifier - number_literal)) ;) (expression_statement "uVar16 = (uint)(param_4 < 10);" (assignment_expression "uVar16 = (uint)(param_4 < 10)" identifier = (call_expression "(uint)(param_4 < 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 < 10)" ( (binary_expression "param_4 < 10" identifier < number_literal) )))) ;) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);" do (compound_statement "{\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              }" { (expression_statement "pcVar20 = pcVar13 + 1;" (assignment_expression "pcVar20 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uVar16 + iVar21) * 2;" (assignment_expression "uVar16 = (uVar16 + iVar21) * 2" identifier = (binary_expression "(uVar16 + iVar21) * 2" (parenthesized_expression "(uVar16 + iVar21)" ( (binary_expression "uVar16 + iVar21" identifier + identifier) )) * number_literal)) ;) (expression_statement "iVar21 = param_4 + uVar16;" (assignment_expression "iVar21 = param_4 + uVar16" identifier = (binary_expression "param_4 + uVar16" identifier + identifier)) ;) (if_statement "if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }" if (parenthesized_expression "((char *)(iVar6 + 9) == pcVar20)" ( (binary_expression "(char *)(iVar6 + 9) == pcVar20" (cast_expression "(char *)(iVar6 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 9)" ( (binary_expression "iVar6 + 9" identifier + number_literal) ))) == identifier) )) (compound_statement "{\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }" { (expression_statement "iVar19 = (int)pcVar13[1];" (assignment_expression "iVar19 = (int)pcVar13[1]" identifier = (cast_expression "(int)pcVar13[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar13 = (char *)(iVar6 + 9);" (assignment_expression "pcVar13 = (char *)(iVar6 + 9)" identifier = (cast_expression "(char *)(iVar6 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 9)" ( (binary_expression "iVar6 + 9" identifier + number_literal) )))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar19 = (int)*pcVar20;" (assignment_expression "iVar19 = (int)*pcVar20" identifier = (cast_expression "(int)*pcVar20" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar20" * identifier))) ;) (expression_statement "param_4 = iVar19 - 0x30;" (assignment_expression "param_4 = iVar19 - 0x30" identifier = (binary_expression "iVar19 - 0x30" identifier - number_literal)) ;) (expression_statement "uVar16 = iVar21 * 4;" (assignment_expression "uVar16 = iVar21 * 4" identifier = (binary_expression "iVar21 * 4" identifier * number_literal)) ;) (expression_statement "pcVar13 = pcVar20;" (assignment_expression "pcVar13 = pcVar20" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 < 10)" ( (binary_expression "param_4 < 10" identifier < number_literal) )) ;) })) (expression_statement "cVar18 = (char)uVar16;" (assignment_expression "cVar18 = (char)uVar16" identifier = (cast_expression "(char)uVar16" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }" if (parenthesized_expression "(iVar14 == iVar19)" ( (binary_expression "iVar14 == iVar19" identifier == identifier) )) (compound_statement "{\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }" { (if_statement "if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }" if (parenthesized_expression "(pcVar13[1] == ')')" ( (binary_expression "pcVar13[1] == ')'" (subscript_expression "pcVar13[1]" identifier [ number_literal ]) == (char_literal "')'" ' character ')) )) (compound_statement "{\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }" { (expression_statement "*param_3 = iVar21;" (assignment_expression "*param_3 = iVar21" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar15)(param_1);" (call_expression "(*(code *)puVar15)(param_1)" (parenthesized_expression "(*(code *)puVar15)" ( (pointer_expression "*(code *)puVar15" * (cast_expression "(code *)puVar15" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) }) (else_clause "else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }" else (compound_statement "{\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }" { (expression_statement "iVar5 = 0x1c;" (assignment_expression "iVar5 = 0x1c" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (goto_statement "goto LAB_0002ae20;" goto statement_identifier ;) })) })) })) (expression_statement "iVar5 = 0x1c;" (assignment_expression "iVar5 = 0x1c" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000afd08)(param_1);" (call_expression "(*(code *)PTR_free_000afd08)(param_1)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) }) (else_clause "else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }" else (compound_statement "{\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }" { (expression_statement "iVar5 = 0x1d;" (assignment_expression "iVar5 = 0x1d" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_20);" (call_expression "(*(code *)PTR_free_000afd08)(local_20)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_20)" ( identifier ))) ;) }))) })) }))) (labeled_statement "LAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }" if (parenthesized_expression "(local_1c == *(int *)puVar2)" ( (binary_expression "local_1c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar24 = ftp_type;" (assignment_expression "pcVar24 = ftp_type" identifier = identifier) ;) (expression_statement "iVar6 = local_1c;" (assignment_expression "iVar6 = local_1c" identifier = identifier) ;) (expression_statement "puVar15 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar15 = PTR___stack_chk_fail_000afbd4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_70 = puVar15 + 0x8c558;" (assignment_expression "puStack_70 = puVar15 + 0x8c558" identifier = (binary_expression "puVar15 + 0x8c558" identifier + number_literal)) ;) (expression_statement "puStack_4c = puVar2;" (assignment_expression "puStack_4c = puVar2" identifier = identifier) ;) (expression_statement "piVar22 = *(int **)(puVar15 + 0x84d64);" (assignment_expression "piVar22 = *(int **)(puVar15 + 0x84d64)" identifier = (pointer_expression "*(int **)(puVar15 + 0x84d64)" * (cast_expression "(int **)(puVar15 + 0x84d64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x84d64)" ( (binary_expression "puVar15 + 0x84d64" identifier + number_literal) ))))) ;) (expression_statement "acStack_58[1] = 0;" (assignment_expression "acStack_58[1] = 0" (subscript_expression "acStack_58[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_54 = *piVar22;" (assignment_expression "iStack_54 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "acStack_58[0] = cVar18;" (assignment_expression "acStack_58[0] = cVar18" (subscript_expression "acStack_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_50 = iVar5;" (assignment_expression "iStack_50 = iVar5" identifier = identifier) ;) (expression_statement "piStack_48 = param_3;" (assignment_expression "piStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar24;" (assignment_expression "pcStack_44 = pcVar24" identifier = identifier) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58)" identifier = (call_expression "FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58)" identifier (argument_list "(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58)" ( (binary_expression "*(int *)(puVar15 + 0x84594) + -0x15d4" (pointer_expression "*(int *)(puVar15 + 0x84594)" * (cast_expression "(int *)(puVar15 + 0x84594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x84594)" ( (binary_expression "puVar15 + 0x84594" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);" (assignment_expression "uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7)" identifier = (call_expression "(**(code **)(puStack_70 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(puStack_70 + -0x77c8))" ( (pointer_expression "**(code **)(puStack_70 + -0x77c8)" * (pointer_expression "*(code **)(puStack_70 + -0x77c8)" * (cast_expression "(code **)(puStack_70 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x77c8)" ( (binary_expression "puStack_70 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(puStack_70 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(puStack_70 + -0x7fc8)" * (cast_expression "(int *)(puStack_70 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_70 + -0x7fc8)" ( (binary_expression "puStack_70 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = fd_write(iVar6,uVar7,uVar3);" (assignment_expression "iVar5 = fd_write(iVar6,uVar7,uVar3)" identifier = (call_expression "fd_write(iVar6,uVar7,uVar3)" identifier (argument_list "(iVar6,uVar7,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }" { (expression_statement "(**(code **)(puStack_70 + -0x7728))(uVar7);" (call_expression "(**(code **)(puStack_70 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }" { (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_5c);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_5c)" identifier = (call_expression "ftp_response(iVar6,&pcStack_5c)" identifier (argument_list "(iVar6,&pcStack_5c)" ( identifier , (pointer_expression "&pcStack_5c" & identifier) )))) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }" { (if_statement "if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }" if (parenthesized_expression "(*pcStack_5c == '2')" ( (binary_expression "*pcStack_5c == '2'" (pointer_expression "*pcStack_5c" * identifier) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }" { (expression_statement "iStack_64 = iVar5;" (assignment_expression "iStack_64 = iVar5" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = iStack_64;" (assignment_expression "iVar5 = iStack_64" identifier = identifier) ;) }) (else_clause "else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }" else (compound_statement "{\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }" { (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" identifier = number_literal) ;) }))) })) }))) (if_statement "if (iStack_54 == *piVar22) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_54 == *piVar22)" ( (binary_expression "iStack_54 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(puStack_70 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(puStack_70 + -0x785c)" identifier = (pointer_expression "*(code **)(puStack_70 + -0x785c)" * (cast_expression "(code **)(puStack_70 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x785c)" ( (binary_expression "puStack_70 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_cwd;" (assignment_expression "pcVar25 = ftp_cwd" identifier = identifier) ;) (expression_statement "iVar5 = iStack_54;" (assignment_expression "iVar5 = iStack_54" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_b0 = pcVar24 + 0x8c410;" (assignment_expression "pcStack_b0 = pcVar24 + 0x8c410" identifier = (binary_expression "pcVar24 + 0x8c410" identifier + number_literal)) ;) (expression_statement "piVar23 = *(int **)(pcVar24 + 0x84c1c);" (assignment_expression "piVar23 = *(int **)(pcVar24 + 0x84c1c)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x84c1c)" * (cast_expression "(int **)(pcVar24 + 0x84c1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84c1c)" ( (binary_expression "pcVar24 + 0x84c1c" identifier + number_literal) ))))) ;) (expression_statement "iStack_9c = *piVar23;" (assignment_expression "iStack_9c = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "uStack_98 = uVar7;" (assignment_expression "uStack_98 = uVar7" identifier = identifier) ;) (expression_statement "piStack_94 = piVar22;" (assignment_expression "piStack_94 = piVar22" identifier = identifier) ;) (expression_statement "iStack_90 = iVar6;" (assignment_expression "iStack_90 = iVar6" identifier = identifier) ;) (expression_statement "pcStack_8c = pcVar25;" (assignment_expression "pcStack_8c = pcVar25" identifier = identifier) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc)" identifier (argument_list "(*(int *)(pcVar24 + 0x8444c) + -0x15cc)" ( (binary_expression "*(int *)(pcVar24 + 0x8444c) + -0x15cc" (pointer_expression "*(int *)(pcVar24 + 0x8444c)" * (cast_expression "(int *)(pcVar24 + 0x8444c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x8444c)" ( (binary_expression "pcVar24 + 0x8444c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);" (assignment_expression "uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7)" identifier = (call_expression "(**(code **)(pcStack_b0 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_b0 + -0x77c8)" * (cast_expression "(code **)(pcStack_b0 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x77c8)" ( (binary_expression "pcStack_b0 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_b0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_b0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_b0 + -0x7fc8)" ( (binary_expression "pcStack_b0 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = fd_write(iVar5,uVar7,uVar3);" (assignment_expression "iVar6 = fd_write(iVar5,uVar7,uVar3)" identifier = (call_expression "fd_write(iVar5,uVar7,uVar3)" identifier (argument_list "(iVar5,uVar7,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_b0 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar6 = 0x2c;" (assignment_expression "iVar6 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = ftp_response(iVar5,&pcStack_a0);" (assignment_expression "iVar6 = ftp_response(iVar5,&pcStack_a0)" identifier = (call_expression "ftp_response(iVar5,&pcStack_a0)" identifier (argument_list "(iVar5,&pcStack_a0)" ( identifier , (pointer_expression "&pcStack_a0" & identifier) )))) ;) (if_statement "if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }" if (parenthesized_expression "(iVar6 == 7)" ( (binary_expression "iVar6 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }" { (if_statement "if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_a0 == '5')" ( (binary_expression "*pcStack_a0 == '5'" (pointer_expression "*pcStack_a0" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = 0xc;" (assignment_expression "iVar6 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" else (if_statement "if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_a0 == '2')" ( (binary_expression "*pcStack_a0 == '2'" (pointer_expression "*pcStack_a0" * identifier) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }" { (expression_statement "iStack_a4 = iVar6;" (assignment_expression "iStack_a4 = iVar6" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = iStack_a4;" (assignment_expression "iVar6 = iStack_a4" identifier = identifier) ;) }) (else_clause "else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" else (compound_statement "{\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = 0xe;" (assignment_expression "iVar6 = 0xe" identifier = number_literal) ;) }))))) })) }))) (if_statement "if (iStack_9c == *piVar23) {\n    return iVar6;\n  }" if (parenthesized_expression "(iStack_9c == *piVar23)" ( (binary_expression "iStack_9c == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(pcStack_b0 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_b0 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_b0 + -0x785c)" * (cast_expression "(code **)(pcStack_b0 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x785c)" ( (binary_expression "pcStack_b0 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_rest;" (assignment_expression "pcVar25 = ftp_rest" identifier = identifier) ;) (expression_statement "iVar6 = iStack_9c;" (assignment_expression "iVar6 = iStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_f0 = pcVar24 + 0x8c2b4;" (assignment_expression "pcStack_f0 = pcVar24 + 0x8c2b4" identifier = (binary_expression "pcVar24 + 0x8c2b4" identifier + number_literal)) ;) (expression_statement "piVar22 = *(int **)(pcVar24 + 0x84ac0);" (assignment_expression "piVar22 = *(int **)(pcVar24 + 0x84ac0)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x84ac0)" * (cast_expression "(int **)(pcVar24 + 0x84ac0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84ac0)" ( (binary_expression "pcVar24 + 0x84ac0" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = *piVar22;" (assignment_expression "iStack_dc = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "uStack_d8 = uVar7;" (assignment_expression "uStack_d8 = uVar7" identifier = identifier) ;) (expression_statement "piStack_d4 = piVar23;" (assignment_expression "piStack_d4 = piVar23" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar5;" (assignment_expression "iStack_d0 = iVar5" identifier = identifier) ;) (expression_statement "pcStack_cc = pcVar25;" (assignment_expression "pcStack_cc = pcVar25" identifier = identifier) ;) (expression_statement "uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);" (assignment_expression "uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4)" identifier = (call_expression "(**(code **)(pcVar24 + 0x8451c))(uVar3,param_4)" (parenthesized_expression "(**(code **)(pcVar24 + 0x8451c))" ( (pointer_expression "**(code **)(pcVar24 + 0x8451c)" * (pointer_expression "*(code **)(pcVar24 + 0x8451c)" * (cast_expression "(code **)(pcVar24 + 0x8451c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x8451c)" ( (binary_expression "pcVar24 + 0x8451c" identifier + number_literal) ))))) )) (argument_list "(uVar3,param_4)" ( identifier , identifier )))) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7)" identifier = (call_expression "FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7)" identifier (argument_list "(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7)" ( (binary_expression "*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8" (pointer_expression "*(int *)(pcStack_f0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_f0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_f0 + -0x7fc4)" ( (binary_expression "pcStack_f0 + -0x7fc4" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);" (assignment_expression "uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7)" identifier = (call_expression "(**(code **)(pcStack_f0 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_f0 + -0x77c8)" * (cast_expression "(code **)(pcStack_f0 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x77c8)" ( (binary_expression "pcStack_f0 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_f0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_f0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_f0 + -0x7fc8)" ( (binary_expression "pcStack_f0 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = fd_write(iVar6,uVar7,uVar3);" (assignment_expression "iVar5 = fd_write(iVar6,uVar7,uVar3)" identifier = (call_expression "fd_write(iVar6,uVar7,uVar3)" identifier (argument_list "(iVar6,uVar7,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }" { (expression_statement "(**(code **)(pcStack_f0 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_f0 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_e0);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_e0)" identifier = (call_expression "ftp_response(iVar6,&pcStack_e0)" identifier (argument_list "(iVar6,&pcStack_e0)" ( identifier , (pointer_expression "&pcStack_e0" & identifier) )))) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }" { (if_statement "if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }" if (parenthesized_expression "(*pcStack_e0 == '3')" ( (binary_expression "*pcStack_e0 == '3'" (pointer_expression "*pcStack_e0" * identifier) == (char_literal "'3'" ' character ')) )) (compound_statement "{\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }" { (expression_statement "iStack_e4 = iVar5;" (assignment_expression "iStack_e4 = iVar5" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = iStack_e4;" (assignment_expression "iVar5 = iStack_e4" identifier = identifier) ;) }) (else_clause "else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }" else (compound_statement "{\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }" { (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) }))) })) }))) (if_statement "if (iStack_dc == *piVar22) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_dc == *piVar22)" ( (binary_expression "iStack_dc == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(pcStack_f0 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_f0 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_f0 + -0x785c)" * (cast_expression "(code **)(pcStack_f0 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x785c)" ( (binary_expression "pcStack_f0 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_retr;" (assignment_expression "pcVar25 = ftp_retr" identifier = identifier) ;) (expression_statement "iVar5 = iStack_dc;" (assignment_expression "iVar5 = iStack_dc" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar23 = *(int **)(pcVar24 + 0x8496c);" (assignment_expression "piVar23 = *(int **)(pcVar24 + 0x8496c)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x8496c)" * (cast_expression "(int **)(pcVar24 + 0x8496c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x8496c)" ( (binary_expression "pcVar24 + 0x8496c" identifier + number_literal) ))))) ;) (expression_statement "iStack_11c = *piVar23;" (assignment_expression "iStack_11c = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "uStack_118 = uVar7;" (assignment_expression "uStack_118 = uVar7" identifier = identifier) ;) (expression_statement "piStack_114 = piVar22;" (assignment_expression "piStack_114 = piVar22" identifier = identifier) ;) (expression_statement "iStack_110 = iVar6;" (assignment_expression "iStack_110 = iVar6" identifier = identifier) ;) (expression_statement "pcStack_10c = pcVar25;" (assignment_expression "pcStack_10c = pcVar25" identifier = identifier) ;) (expression_statement "ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);" (assignment_expression "ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" identifier = (cast_expression "(char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" identifier (argument_list "(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" ( (binary_expression "*(int *)(pcVar24 + 0x8419c) + -0x15c0" (pointer_expression "*(int *)(pcVar24 + 0x8419c)" * (cast_expression "(int *)(pcVar24 + 0x8419c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x8419c)" ( (binary_expression "pcVar24 + 0x8419c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);" (assignment_expression "iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8)" identifier = (call_expression "(**(code **)(pcVar24 + 0x84998))(ppcVar8)" (parenthesized_expression "(**(code **)(pcVar24 + 0x84998))" ( (pointer_expression "**(code **)(pcVar24 + 0x84998)" * (pointer_expression "*(code **)(pcVar24 + 0x84998)" * (cast_expression "(code **)(pcVar24 + 0x84998)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84998)" ( (binary_expression "pcVar24 + 0x84998" identifier + number_literal) ))))) )) (argument_list "(ppcVar8)" ( identifier )))) ;) (expression_statement "uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);" (assignment_expression "uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x84198) + 0x40b8)" ( (binary_expression "*(int *)(pcVar24 + 0x84198) + 0x40b8" (pointer_expression "*(int *)(pcVar24 + 0x84198)" * (cast_expression "(int *)(pcVar24 + 0x84198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x84198)" ( (binary_expression "pcVar24 + 0x84198" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar17 = ppcVar8;" (assignment_expression "ppcVar17 = ppcVar8" identifier = identifier) ;) (expression_statement "iVar14 = fd_write(iVar5);" (assignment_expression "iVar14 = fd_write(iVar5)" identifier = (call_expression "fd_write(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))(ppcVar8);" (call_expression "(**(code **)(pcVar24 + 0x84a38))(ppcVar8)" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "(ppcVar8)" ( identifier ))) ;) (expression_statement "iVar14 = 0x2c;" (assignment_expression "iVar14 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar17 = &pcStack_120;" (assignment_expression "ppcVar17 = &pcStack_120" identifier = (pointer_expression "&pcStack_120" & identifier)) ;) (expression_statement "iVar14 = ftp_response(iVar5);" (assignment_expression "iVar14 = ftp_response(iVar5)" identifier = (call_expression "ftp_response(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }" if (parenthesized_expression "(iVar14 == 7)" ( (binary_expression "iVar14 == 7" identifier == number_literal) )) (compound_statement "{\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }" { (expression_statement "ppcVar17 = (char **)0x31;" (assignment_expression "ppcVar17 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_120 == '5')" ( (binary_expression "*pcStack_120 == '5'" (pointer_expression "*pcStack_120" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar14 = 0xc;" (assignment_expression "iVar14 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" else (if_statement "if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_120 == '1')" ( (binary_expression "*pcStack_120 == '1'" (pointer_expression "*pcStack_120" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcVar24 + 0x84a38))();\n      }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" else (compound_statement "{\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar14 = 0xe;" (assignment_expression "iVar14 = 0xe" identifier = number_literal) ;) }))))) })) }))) (if_statement "if (iStack_11c == *piVar23) {\n    return iVar14;\n  }" if (parenthesized_expression "(iStack_11c == *piVar23)" ( (binary_expression "iStack_11c == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n    return iVar14;\n  }" { (return_statement "return iVar14;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x84904);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x84904)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x84904)" * (cast_expression "(code **)(pcVar24 + 0x84904)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84904)" ( (binary_expression "pcVar24 + 0x84904" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = iStack_11c;" (assignment_expression "iVar14 = iStack_11c" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_198 = pcVar24 + 0x8c004;" (assignment_expression "pcStack_198 = pcVar24 + 0x8c004" identifier = (binary_expression "pcVar24 + 0x8c004" identifier + number_literal)) ;) (expression_statement "puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);" (assignment_expression "puStack_188 = *(undefined4 **)(pcVar24 + 0x84810)" identifier = (pointer_expression "*(undefined4 **)(pcVar24 + 0x84810)" * (cast_expression "(undefined4 **)(pcVar24 + 0x84810)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84810)" ( (binary_expression "pcVar24 + 0x84810" identifier + number_literal) ))))) ;) (expression_statement "pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);" (assignment_expression "pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20)" identifier = (cast_expression "(byte *)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pbStack_184 = pbStack_138;" (assignment_expression "pbStack_184 = pbStack_138" identifier = identifier) ;) (expression_statement "pcStack_17c = (char *)*puStack_188;" (assignment_expression "pcStack_17c = (char *)*puStack_188" identifier = (cast_expression "(char *)*puStack_188" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_188" * identifier))) ;) (expression_statement "*pbStack_138 = 0;" (assignment_expression "*pbStack_138 = 0" (pointer_expression "*pbStack_138" * identifier) = number_literal) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "ppcStack_178 = ppcVar8;" (assignment_expression "ppcStack_178 = ppcVar8" identifier = identifier) ;) (expression_statement "piStack_174 = piVar23;" (assignment_expression "piStack_174 = piVar23" identifier = identifier) ;) (expression_statement "iStack_170 = iVar5;" (assignment_expression "iStack_170 = iVar5" identifier = identifier) ;) (expression_statement "pcStack_16c = param_1;" (assignment_expression "pcStack_16c = param_1" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }" { (expression_statement "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;" (assignment_expression "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0" identifier = (binary_expression "*(int *)(pcVar24 + 0x84040) + -0x15b0" (pointer_expression "*(int *)(pcVar24 + 0x84040)" * (cast_expression "(int *)(pcVar24 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x84040)" ( (binary_expression "pcVar24 + 0x84040" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" else (if_statement "if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0')" ( (binary_expression "*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0'" (pointer_expression "*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b)" * (cast_expression "(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x8405c) + 0x16b)" ( (binary_expression "*(int *)(pcVar24 + 0x8405c) + 0x16b" (pointer_expression "*(int *)(pcVar24 + 0x8405c)" * (cast_expression "(int *)(pcVar24 + 0x8405c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x8405c)" ( (binary_expression "pcVar24 + 0x8405c" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }" { (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8" identifier = (binary_expression "*(int *)(pcVar24 + 0x84040) + -0x15b8" (pointer_expression "*(int *)(pcVar24 + 0x84040)" * (cast_expression "(int *)(pcVar24 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x84040)" ( (binary_expression "pcVar24 + 0x84040" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" else (compound_statement "{\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" { (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (expression_statement "debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);" (call_expression "debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8)" identifier (argument_list "(*(int *)(pcVar24 + 0x84040) + -0x15a8)" ( (binary_expression "*(int *)(pcVar24 + 0x84040) + -0x15a8" (pointer_expression "*(int *)(pcVar24 + 0x84040)" * (cast_expression "(int *)(pcVar24 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x84040)" ( (binary_expression "pcVar24 + 0x84040" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8" identifier = (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" * (cast_expression "(int *)(pcStack_198 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc4)" ( (binary_expression "pcStack_198 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) }))))) (expression_statement "iVar6 = *(int *)(pcStack_198 + -0x7c70);" (assignment_expression "iVar6 = *(int *)(pcStack_198 + -0x7c70)" identifier = (pointer_expression "*(int *)(pcStack_198 + -0x7c70)" * (cast_expression "(int *)(pcStack_198 + -0x7c70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7c70)" ( (binary_expression "pcStack_198 + -0x7c70" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);" (assignment_expression "uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc8)" * (cast_expression "(int *)(pcStack_198 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc8)" ( (binary_expression "pcStack_198 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);" (assignment_expression "uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38)" identifier = (pointer_expression "*(undefined4 *)(pcStack_198 + -0x7d38)" * (cast_expression "(undefined4 *)(pcStack_198 + -0x7d38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7d38)" ( (binary_expression "pcStack_198 + -0x7d38" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8" identifier = (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" * (cast_expression "(int *)(pcStack_198 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc4)" ( (binary_expression "pcStack_198 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);" do (compound_statement "{\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  }" { (while_statement "while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" { (expression_statement "ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);" (assignment_expression "ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17)" identifier = (cast_expression "(char **)FUN_00029120(iVar5,ppcVar17)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(iVar5,ppcVar17)" identifier (argument_list "(iVar5,ppcVar17)" ( identifier , identifier ))))) ;) (expression_statement "puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);" (assignment_expression "puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_198 + -0x77c8))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_198 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_198 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_198 + -0x77c8)" * (cast_expression "(code **)(pcStack_198 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x77c8)" ( (binary_expression "pcStack_198 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar9)" ( identifier ))))) ;) (expression_statement "ppcVar8 = ppcVar9;" (assignment_expression "ppcVar8 = ppcVar9" identifier = identifier) ;) (expression_statement "uStack_1a0 = uVar26;" (assignment_expression "uStack_1a0 = uVar26" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(iVar14);" (assignment_expression "iVar5 = fd_write(iVar14)" identifier = (call_expression "fd_write(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (if_statement "if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }" { (expression_statement "(**(code **)(pcStack_198 + -0x7728))(ppcVar9);" (call_expression "(**(code **)(pcStack_198 + -0x7728))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_198 + -0x7728)" * (pointer_expression "*(code **)(pcStack_198 + -0x7728)" * (cast_expression "(code **)(pcStack_198 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x7728)" ( (binary_expression "pcStack_198 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar9)" ( identifier ))) ;) (expression_statement "iVar11 = 0x2c;" (assignment_expression "iVar11 = 0x2c" identifier = number_literal) ;) (goto_statement "goto LAB_0002b57c;" goto statement_identifier ;) })) (expression_statement "ppcVar9 = (char **)(iVar19 + 1);" (assignment_expression "ppcVar9 = (char **)(iVar19 + 1)" identifier = (cast_expression "(char **)(iVar19 + 1)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 1)" ( (binary_expression "iVar19 + 1" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_198 + -0x7728))();" (call_expression "(**(code **)(pcStack_198 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_198 + -0x7728)" * (pointer_expression "*(code **)(pcStack_198 + -0x7728)" * (cast_expression "(code **)(pcStack_198 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x7728)" ( (binary_expression "pcStack_198 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar8 = &pcStack_180;" (assignment_expression "ppcVar8 = &pcStack_180" identifier = (pointer_expression "&pcStack_180" & identifier)) ;) (expression_statement "iVar11 = ftp_response(iVar14);" (assignment_expression "iVar11 = ftp_response(iVar14)" identifier = (call_expression "ftp_response(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "iVar5 = iVar21;" (assignment_expression "iVar5 = iVar21" identifier = identifier) ;) (if_statement "if (iVar11 != 7) break;" if (parenthesized_expression "(iVar11 != 7)" ( (binary_expression "iVar11 != 7" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppcVar8 = (char **)0x31;" (assignment_expression "ppcVar8 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_180 == '5')" ( (binary_expression "*pcStack_180 == '5'" (pointer_expression "*pcStack_180" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0xc;" (assignment_expression "iVar11 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" else (if_statement "if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_180 == '1')" ( (binary_expression "*pcStack_180 == '1'" (pointer_expression "*pcStack_180" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }" { (expression_statement "*pbStack_184 = (byte)iVar19 ^ 1;" (assignment_expression "*pbStack_184 = (byte)iVar19 ^ 1" (pointer_expression "*pbStack_184" * identifier) = (binary_expression "(byte)iVar19 ^ 1" (cast_expression "(byte)iVar19" ( (type_descriptor "byte" type_identifier) ) identifier) ^ number_literal)) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" else (compound_statement "{\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0xe;" (assignment_expression "iVar11 = 0xe" identifier = number_literal) ;) }))))) (expression_statement "iStack_18c = iVar11;" (assignment_expression "iStack_18c = iVar11" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_198 + -0x7728))();" (call_expression "(**(code **)(pcStack_198 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_198 + -0x7728)" * (pointer_expression "*(code **)(pcStack_198 + -0x7728)" * (cast_expression "(code **)(pcStack_198 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x7728)" ( (binary_expression "pcStack_198 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_180 = (char *)0x0;" (assignment_expression "pcStack_180 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar11 = iStack_18c;" (assignment_expression "iVar11 = iStack_18c" identifier = identifier) ;) (if_statement "if (param_4 != 0) goto LAB_0002b570;" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002b570;" goto statement_identifier ;)) (if_statement "if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;" if (parenthesized_expression "((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))" ( (binary_expression "(ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1)" (parenthesized_expression "(ppcVar9 != (char **)&DAT_00000001)" ( (binary_expression "ppcVar9 != (char **)&DAT_00000001" identifier != (cast_expression "(char **)&DAT_00000001" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000001" & identifier))) )) || (parenthesized_expression "(bVar1 = iVar19 != 0, iVar19 = 1, bVar1)" ( (comma_expression "bVar1 = iVar19 != 0, iVar19 = 1, bVar1" (assignment_expression "bVar1 = iVar19 != 0" identifier = (binary_expression "iVar19 != 0" identifier != number_literal)) , (comma_expression "iVar19 = 1, bVar1" (assignment_expression "iVar19 = 1" identifier = number_literal) , identifier)) ))) )) (goto_statement "goto LAB_0002b57c;" goto statement_identifier ;)) })) (if_statement "if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }" { (labeled_statement "LAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }" statement_identifier : (if_statement "if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }" if (parenthesized_expression "((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))" ( (binary_expression "(ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')" (parenthesized_expression "(ppcVar9 == (char **)&DAT_00000001)" ( (binary_expression "ppcVar9 == (char **)&DAT_00000001" identifier == (cast_expression "(char **)&DAT_00000001" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000001" & identifier))) )) && (parenthesized_expression "(*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')" ( (binary_expression "*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'" (pointer_expression "*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" * (cast_expression "(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fa8) + 0x16b" (pointer_expression "*(int *)(pcStack_198 + -0x7fa8)" * (cast_expression "(int *)(pcStack_198 + -0x7fa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fa8)" ( (binary_expression "pcStack_198 + -0x7fa8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }" { (expression_statement "iStack_18c = iVar11;" (assignment_expression "iStack_18c = iVar11" identifier = identifier) ;) (expression_statement "debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);" (call_expression "debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590)" identifier (argument_list "(*(int *)(pcStack_198 + -0x7fc4) + -0x1590)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x1590" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" * (cast_expression "(int *)(pcStack_198 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc4)" ( (binary_expression "pcStack_198 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar11 = iStack_18c;" (assignment_expression "iVar11 = iStack_18c" identifier = identifier) ;) }))) (break_statement "break;" break ;) })) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "(ppcVar9 == (char **)&DAT_00000001)" ( (binary_expression "ppcVar9 == (char **)&DAT_00000001" identifier == (cast_expression "(char **)&DAT_00000001" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000001" & identifier))) )) ;) (labeled_statement "LAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }" statement_identifier : (if_statement "if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }" if (parenthesized_expression "(pcStack_17c == (char *)*puStack_188)" ( (binary_expression "pcStack_17c == (char *)*puStack_188" identifier == (cast_expression "(char *)*puStack_188" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_188" * identifier))) )) (compound_statement "{\n    return iVar11;\n  }" { (return_statement "return iVar11;" return identifier ;) }))) (expression_statement "pcVar24 = *(code **)(pcStack_198 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_198 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_198 + -0x785c)" * (cast_expression "(code **)(pcStack_198 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x785c)" ( (binary_expression "pcStack_198 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_syst;" (assignment_expression "pcVar25 = ftp_syst" identifier = identifier) ;) (expression_statement "pcVar13 = pcStack_17c;" (assignment_expression "pcVar13 = pcStack_17c" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_1e0 = pcVar24 + 0x8bd8c;" (assignment_expression "pcStack_1e0 = pcVar24 + 0x8bd8c" identifier = (binary_expression "pcVar24 + 0x8bd8c" identifier + number_literal)) ;) (expression_statement "piVar22 = *(int **)(pcVar24 + 0x84598);" (assignment_expression "piVar22 = *(int **)(pcVar24 + 0x84598)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x84598)" * (cast_expression "(int **)(pcVar24 + 0x84598)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84598)" ( (binary_expression "pcVar24 + 0x84598" identifier + number_literal) ))))) ;) (expression_statement "iStack_1d4 = *piVar22;" (assignment_expression "iStack_1d4 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "ppcStack_1d0 = ppcVar9;" (assignment_expression "ppcStack_1d0 = ppcVar9" identifier = identifier) ;) (expression_statement "iStack_1cc = iVar19;" (assignment_expression "iStack_1cc = iVar19" identifier = identifier) ;) (expression_statement "iStack_1c8 = iVar14;" (assignment_expression "iStack_1c8 = iVar14" identifier = identifier) ;) (expression_statement "iStack_1c4 = iVar6 + -0x6ee0;" (assignment_expression "iStack_1c4 = iVar6 + -0x6ee0" identifier = (binary_expression "iVar6 + -0x6ee0" identifier + number_literal)) ;) (expression_statement "iStack_1c0 = iVar21;" (assignment_expression "iStack_1c0 = iVar21" identifier = identifier) ;) (expression_statement "ppcStack_1bc = ppcVar17;" (assignment_expression "ppcStack_1bc = ppcVar17" identifier = identifier) ;) (expression_statement "uStack_1b8 = uVar7;" (assignment_expression "uStack_1b8 = uVar7" identifier = identifier) ;) (expression_statement "pcStack_1b4 = pcVar25;" (assignment_expression "pcStack_1b4 = pcVar25" identifier = identifier) ;) (expression_statement "ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);" (assignment_expression "ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" identifier = (cast_expression "(char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" identifier (argument_list "(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" ( (binary_expression "*(int *)(pcVar24 + 0x83dc8) + -0x157c" (pointer_expression "*(int *)(pcVar24 + 0x83dc8)" * (cast_expression "(int *)(pcVar24 + 0x83dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x83dc8)" ( (binary_expression "pcVar24 + 0x83dc8" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);" (assignment_expression "uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x77c8)" * (cast_expression "(code **)(pcStack_1e0 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x77c8)" ( (binary_expression "pcStack_1e0 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar9)" ( identifier )))) ;) (expression_statement "uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc8)" ( (binary_expression "pcStack_1e0 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar17 = ppcVar9;" (assignment_expression "ppcVar17 = ppcVar9" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(pcVar13,ppcVar9,uVar7);" (assignment_expression "iVar5 = fd_write(pcVar13,ppcVar9,uVar7)" identifier = (call_expression "fd_write(pcVar13,ppcVar9,uVar7)" identifier (argument_list "(pcVar13,ppcVar9,uVar7)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar9)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))();" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar17 = &pcStack_1d8;" (assignment_expression "ppcVar17 = &pcStack_1d8" identifier = (pointer_expression "&pcStack_1d8" & identifier)) ;) (expression_statement "iVar5 = ftp_response(pcVar13);" (assignment_expression "iVar5 = ftp_response(pcVar13)" identifier = (call_expression "ftp_response(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier )))) ;) (expression_statement "pcVar20 = pcStack_1d8;" (assignment_expression "pcVar20 = pcStack_1d8" identifier = identifier) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }" { (if_statement "if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" if (parenthesized_expression "(*pcStack_1d8 == '5')" ( (binary_expression "*pcStack_1d8 == '5'" (pointer_expression "*pcStack_1d8" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }" { (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_1d8)" ( identifier ))) ;) (expression_statement "pcVar13 = pcStack_1d8;" (assignment_expression "pcVar13 = pcStack_1d8" identifier = identifier) ;) }) (else_clause "else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" else (compound_statement "{\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" { (expression_statement "iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);" (assignment_expression "iVar6 = *(int *)(pcStack_1e0 + -0x7fc8)" identifier = (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc8)" ( (binary_expression "pcStack_1e0 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);" (assignment_expression "uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x794c)" * (cast_expression "(code **)(pcStack_1e0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x794c)" ( (binary_expression "pcStack_1e0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "(pcStack_1d8)" ( identifier )))) ;) (expression_statement "(**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);" (call_expression "(**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7888)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7888)" * (cast_expression "(code **)(pcStack_1e0 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7888)" ( (binary_expression "pcStack_1e0 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcVar20,iVar6 + 0x4a48)" ( identifier , (binary_expression "iVar6 + 0x4a48" identifier + number_literal) ))) ;) (expression_statement "ppcVar17 = (char **)(iVar6 + 0x4a48);" (assignment_expression "ppcVar17 = (char **)(iVar6 + 0x4a48)" identifier = (cast_expression "(char **)(iVar6 + 0x4a48)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x4a48)" ( (binary_expression "iVar6 + 0x4a48" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);" (assignment_expression "pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0)" identifier = (cast_expression "(char *)(**(code **)(pcStack_1e0 + -0x7888))(0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_1e0 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7888)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7888)" * (cast_expression "(code **)(pcStack_1e0 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7888)" ( (binary_expression "pcStack_1e0 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "*puVar10 = 2;" (assignment_expression "*puVar10 = 2" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (if_statement "if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }" { (labeled_statement "LAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;" statement_identifier : (expression_statement "*ppcVar8 = (char *)0x5;" (assignment_expression "*ppcVar8 = (char *)0x5" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }" else (compound_statement "{\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            *ppcVar8 = (char *)0x1;\n          }" { (expression_statement "*ppcVar8 = (char *)0x1;" (assignment_expression "*ppcVar8 = (char *)0x1" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }" else (compound_statement "{\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }" { (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" ( identifier , (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }" { (expression_statement "iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_1e0 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);" (assignment_expression "pcVar24 = *(code **)(pcStack_1e0 + -0x7db0)" identifier = (pointer_expression "*(code **)(pcStack_1e0 + -0x7db0)" * (cast_expression "(code **)(pcStack_1e0 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7db0)" ( (binary_expression "pcStack_1e0 + -0x7db0" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar8 = (char *)0x0;" (assignment_expression "*ppcVar8 = (char *)0x0" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar17 = (char **)(iVar6 + -0x1568);" (assignment_expression "ppcVar17 = (char **)(iVar6 + -0x1568)" identifier = (cast_expression "(char **)(iVar6 + -0x1568)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + -0x1568)" ( (binary_expression "iVar6 + -0x1568" identifier + number_literal) )))) ;) (expression_statement "iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);" (assignment_expression "iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11)" identifier = (call_expression "(*pcVar24)(uVar7,ppcVar17,0x11)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(uVar7,ppcVar17,0x11)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                *puVar10 = 0;\n              }" { (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) }) (else_clause "else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }" else (compound_statement "{\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7db0))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7db0)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7db0)" * (cast_expression "(code **)(pcStack_1e0 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7db0)" ( (binary_expression "pcStack_1e0 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(uVar7,ppcVar17,0x29)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  *puVar10 = 1;\n                }" { (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) })) }))) }) (else_clause "else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }" else (compound_statement "{\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    *ppcVar8 = (char *)0x3;\n                  }" { (expression_statement "*ppcVar8 = (char *)0x3;" (assignment_expression "*ppcVar8 = (char *)0x3" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }" else (compound_statement "{\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) goto LAB_0002b8d8;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002b8d8;" goto statement_identifier ;)) (expression_statement "*ppcVar8 = (char *)0x4;" (assignment_expression "*ppcVar8 = (char *)0x4" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_0002b804;" goto statement_identifier ;) })) })) (expression_statement "*ppcVar8 = (char *)0x2;" (assignment_expression "*ppcVar8 = (char *)0x2" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) }))) (labeled_statement "LAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);" statement_identifier : (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_1d8)" ( identifier ))) ;) }))) })) }))) (if_statement "if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_1d4 == *piVar22)" ( (binary_expression "iStack_1d4 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(pcStack_1e0 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_1e0 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_1e0 + -0x785c)" * (cast_expression "(code **)(pcStack_1e0 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x785c)" ( (binary_expression "pcStack_1e0 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_pwd;" (assignment_expression "pcVar25 = ftp_pwd" identifier = identifier) ;) (expression_statement "iVar6 = iStack_1d4;" (assignment_expression "iVar6 = iStack_1d4" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_220 = pcVar24 + 0x8ba8c;" (assignment_expression "pcStack_220 = pcVar24 + 0x8ba8c" identifier = (binary_expression "pcVar24 + 0x8ba8c" identifier + number_literal)) ;) (expression_statement "piVar23 = *(int **)(pcVar24 + 0x84298);" (assignment_expression "piVar23 = *(int **)(pcVar24 + 0x84298)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x84298)" * (cast_expression "(int **)(pcVar24 + 0x84298)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84298)" ( (binary_expression "pcVar24 + 0x84298" identifier + number_literal) ))))) ;) (expression_statement "iStack_214 = *piVar23;" (assignment_expression "iStack_214 = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "iStack_20c = iVar5;" (assignment_expression "iStack_20c = iVar5" identifier = identifier) ;) (expression_statement "piStack_208 = piVar22;" (assignment_expression "piStack_208 = piVar22" identifier = identifier) ;) (expression_statement "pcStack_204 = pcVar13;" (assignment_expression "pcStack_204 = pcVar13" identifier = identifier) ;) (expression_statement "puStack_200 = puVar10;" (assignment_expression "puStack_200 = puVar10" identifier = identifier) ;) (expression_statement "pcStack_1fc = pcVar25;" (assignment_expression "pcStack_1fc = pcVar25" identifier = identifier) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0)" identifier (argument_list "(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0)" ( (binary_expression "*(int *)(pcVar24 + 0x83ac8) + -0x1500" (pointer_expression "*(int *)(pcVar24 + 0x83ac8)" * (cast_expression "(int *)(pcVar24 + 0x83ac8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x83ac8)" ( (binary_expression "pcVar24 + 0x83ac8" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);" (assignment_expression "puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7)" identifier = (cast_expression "(undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_220 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_220 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_220 + -0x77c8)" * (cast_expression "(code **)(pcStack_220 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x77c8)" ( (binary_expression "pcStack_220 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))))) ;) (expression_statement "uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_220 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_220 + -0x7fc8)" * (cast_expression "(int *)(pcStack_220 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_220 + -0x7fc8)" ( (binary_expression "pcStack_220 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = fd_write(iVar6,uVar7);" (assignment_expression "iVar5 = fd_write(iVar6,uVar7)" identifier = (call_expression "fd_write(iVar6,uVar7)" identifier (argument_list "(iVar6,uVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_220 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" { (expression_statement "(**(code **)(pcStack_220 + -0x7728))();" (call_expression "(**(code **)(pcStack_220 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_218);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_218)" identifier = (call_expression "ftp_response(iVar6,&pcStack_218)" identifier (argument_list "(iVar6,&pcStack_218)" ( identifier , (pointer_expression "&pcStack_218" & identifier) )))) ;) (if_statement "if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }" { (expression_statement "iVar6 = *(int *)(pcStack_220 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_220 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_220 + -0x7fc4)" * (cast_expression "(int *)(pcStack_220 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_220 + -0x7fc4)" ( (binary_expression "pcStack_220 + -0x7fc4" identifier + number_literal) ))))) ;) (if_statement "if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }" if (parenthesized_expression "(*pcStack_218 != '5')" ( (binary_expression "*pcStack_218 != '5'" (pointer_expression "*pcStack_218" * identifier) != (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }" { (expression_statement "(**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);" (call_expression "(**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7888)" * (pointer_expression "*(code **)(pcStack_220 + -0x7888)" * (cast_expression "(code **)(pcStack_220 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7888)" ( (binary_expression "pcStack_220 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcStack_218,iVar6 + -0x3d0)" ( identifier , (binary_expression "iVar6 + -0x3d0" identifier + number_literal) ))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);" (assignment_expression "iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0)" identifier = (call_expression "(**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7888)" * (pointer_expression "*(code **)(pcStack_220 + -0x7888)" * (cast_expression "(code **)(pcStack_220 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7888)" ( (binary_expression "pcStack_220 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(0,iVar6 + -0x3d0)" ( number_literal , (binary_expression "iVar6 + -0x3d0" identifier + number_literal) )))) ;) (if_statement "if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }" { (expression_statement "(**(code **)(pcStack_220 + -0x7728))(*ppcVar17);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(*ppcVar17)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(*ppcVar17)" ( (pointer_expression "*ppcVar17" * identifier) ))) ;) (expression_statement "pcVar24 = *(code **)(pcStack_220 + -0x7fa4);" (assignment_expression "pcVar24 = *(code **)(pcStack_220 + -0x7fa4)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x7fa4)" * (cast_expression "(code **)(pcStack_220 + -0x7fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7fa4)" ( (binary_expression "pcStack_220 + -0x7fa4" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar17 = (char *)0x0;" (assignment_expression "*ppcVar17 = (char *)0x0" (pointer_expression "*ppcVar17" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = (char *)(*pcVar24)(iVar6);" (assignment_expression "pcVar13 = (char *)(*pcVar24)(iVar6)" identifier = (cast_expression "(char *)(*pcVar24)(iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar24)(iVar6)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "pcVar24 = *(code **)(pcStack_220 + -0x7728);" (assignment_expression "pcVar24 = *(code **)(pcStack_220 + -0x7728)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar17 = pcVar13;" (assignment_expression "*ppcVar17 = pcVar13" (pointer_expression "*ppcVar17" * identifier) = identifier) ;) (expression_statement "(*pcVar24)(pcStack_218);" (call_expression "(*pcVar24)(pcStack_218)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pcStack_218)" ( identifier ))) ;) (goto_statement "goto LAB_0002bae8;" goto statement_identifier ;) })) })) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_220 + -0x7728))(pcStack_218);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(pcStack_218)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_218)" ( identifier ))) ;) })) }))) (labeled_statement "LAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (iStack_214 == *piVar23) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_214 == *piVar23)" ( (binary_expression "iStack_214 == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar24 = *(code **)(pcStack_220 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_220 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x785c)" * (cast_expression "(code **)(pcStack_220 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x785c)" ( (binary_expression "pcStack_220 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_size;" (assignment_expression "pcVar25 = ftp_size" identifier = identifier) ;) (expression_statement "iVar14 = iStack_214;" (assignment_expression "iVar14 = iStack_214" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar22 = *(int **)(pcVar24 + 0x840f4);" (assignment_expression "piVar22 = *(int **)(pcVar24 + 0x840f4)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x840f4)" * (cast_expression "(int **)(pcVar24 + 0x840f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x840f4)" ( (binary_expression "pcVar24 + 0x840f4" identifier + number_literal) ))))) ;) (expression_statement "iStack_254 = *piVar22;" (assignment_expression "iStack_254 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "iStack_250 = iVar5;" (assignment_expression "iStack_250 = iVar5" identifier = identifier) ;) (expression_statement "piStack_24c = piVar23;" (assignment_expression "piStack_24c = piVar23" identifier = identifier) ;) (expression_statement "iStack_248 = iVar6;" (assignment_expression "iStack_248 = iVar6" identifier = identifier) ;) (expression_statement "ppcStack_244 = ppcVar17;" (assignment_expression "ppcStack_244 = ppcVar17" identifier = identifier) ;) (expression_statement "ppcStack_240 = ppcVar8;" (assignment_expression "ppcStack_240 = ppcVar8" identifier = identifier) ;) (expression_statement "pcStack_23c = pcVar25;" (assignment_expression "pcStack_23c = pcVar25" identifier = identifier) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc)" identifier (argument_list "(*(int *)(pcVar24 + 0x83924) + -0x14fc)" ( (binary_expression "*(int *)(pcVar24 + 0x83924) + -0x14fc" (pointer_expression "*(int *)(pcVar24 + 0x83924)" * (cast_expression "(int *)(pcVar24 + 0x83924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x83924)" ( (binary_expression "pcVar24 + 0x83924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);" (assignment_expression "uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7)" identifier = (call_expression "(**(code **)(pcVar24 + 0x84120))(uVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x84120))" ( (pointer_expression "**(code **)(pcVar24 + 0x84120)" * (pointer_expression "*(code **)(pcVar24 + 0x84120)" * (cast_expression "(code **)(pcVar24 + 0x84120)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84120)" ( (binary_expression "pcVar24 + 0x84120" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "iVar5 = fd_write(iVar14,uVar7,uVar3);" (assignment_expression "iVar5 = fd_write(iVar14,uVar7,uVar3)" identifier = (call_expression "fd_write(iVar14,uVar7,uVar3)" identifier (argument_list "(iVar14,uVar7,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar24 + 0x841c0))(uVar7);" (call_expression "(**(code **)(pcVar24 + 0x841c0))(uVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar24 + 0x841c0)" * (pointer_expression "*(code **)(pcVar24 + 0x841c0)" * (cast_expression "(code **)(pcVar24 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841c0)" ( (binary_expression "pcVar24 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "*(undefined4 *)((int)puVar12 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar12 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar12 + 4)" * (cast_expression "(undefined4 *)((int)puVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 4)" ( (binary_expression "(int)puVar12 + 4" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)puVar12 = 0;" (assignment_expression "*(undefined4 *)puVar12 = 0" (pointer_expression "*(undefined4 *)puVar12" * (cast_expression "(undefined4 *)puVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x841c0))();" (call_expression "(**(code **)(pcVar24 + 0x841c0))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar24 + 0x841c0)" * (pointer_expression "*(code **)(pcVar24 + 0x841c0)" * (cast_expression "(code **)(pcVar24 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841c0)" ( (binary_expression "pcVar24 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar14,&pcStack_258);" (assignment_expression "iVar5 = ftp_response(iVar14,&pcStack_258)" identifier = (call_expression "ftp_response(iVar14,&pcStack_258)" identifier (argument_list "(iVar14,&pcStack_258)" ( identifier , (pointer_expression "&pcStack_258" & identifier) )))) ;) (expression_statement "pcVar13 = pcStack_258;" (assignment_expression "pcVar13 = pcStack_258" identifier = identifier) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }" { (if_statement "if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" if (parenthesized_expression "(*pcStack_258 == '5')" ( (binary_expression "*pcStack_258 == '5'" (pointer_expression "*pcStack_258" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }" { (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x841c0);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x841c0)" * (cast_expression "(code **)(pcVar24 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841c0)" ( (binary_expression "pcVar24 + 0x841c0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" else (compound_statement "{\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" { (expression_statement "piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();" (assignment_expression "piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))()" identifier = (cast_expression "(int *)(**(code **)(pcVar24 + 0x84348))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x84348))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84348))" ( (pointer_expression "**(code **)(pcVar24 + 0x84348)" * (pointer_expression "*(code **)(pcVar24 + 0x84348)" * (cast_expression "(code **)(pcVar24 + 0x84348)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84348)" ( (binary_expression "pcVar24 + 0x84348" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (expression_statement "uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);" (assignment_expression "uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10)" identifier = (call_expression "(**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10)" (parenthesized_expression "(**(code **)(pcVar24 + 0x841f4))" ( (pointer_expression "**(code **)(pcVar24 + 0x841f4)" * (pointer_expression "*(code **)(pcVar24 + 0x841f4)" * (cast_expression "(code **)(pcVar24 + 0x841f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841f4)" ( (binary_expression "pcVar24 + 0x841f4" identifier + number_literal) ))))) )) (argument_list "(pcVar13 + 4,0,10)" ( (binary_expression "pcVar13 + 4" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "iVar6 = *piVar23;" (assignment_expression "iVar6 = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "*puVar12 = uVar26;" (assignment_expression "*puVar12 = uVar26" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x841c0);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x841c0)" * (cast_expression "(code **)(pcVar24 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841c0)" ( (binary_expression "pcVar24 + 0x841c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }" { (expression_statement "(*pcVar25)(pcStack_258);" (call_expression "(*pcVar25)(pcStack_258)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(pcStack_258)" ( identifier ))) ;) (goto_statement "goto LAB_0002bc24;" goto statement_identifier ;) })) }))) (expression_statement "(*pcVar25)(pcStack_258);" (call_expression "(*pcVar25)(pcStack_258)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(pcStack_258)" ( identifier ))) ;) })) (expression_statement "*(undefined4 *)((int)puVar12 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar12 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar12 + 4)" * (cast_expression "(undefined4 *)((int)puVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 4)" ( (binary_expression "(int)puVar12 + 4" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)puVar12 = 0;" (assignment_expression "*(undefined4 *)puVar12 = 0" (pointer_expression "*(undefined4 *)puVar12" * (cast_expression "(undefined4 *)puVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (labeled_statement "LAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (iStack_254 == *piVar22) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_254 == *piVar22)" ( (binary_expression "iStack_254 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x8408c);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x8408c)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x8408c)" * (cast_expression "(code **)(pcVar24 + 0x8408c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x8408c)" ( (binary_expression "pcVar24 + 0x8408c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iStack_254;" (assignment_expression "iVar5 = iStack_254" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar5 == 0) {\n    return 0x49;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0x49;\n  }" { (return_statement "return 0x49;" return number_literal ;) })) (expression_statement "iVar6 = (**(code **)(pcVar24 + 0x83e84))();" (assignment_expression "iVar6 = (**(code **)(pcVar24 + 0x83e84))()" identifier = (call_expression "(**(code **)(pcVar24 + 0x83e84))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x83e84))" ( (pointer_expression "**(code **)(pcVar24 + 0x83e84)" * (pointer_expression "*(code **)(pcVar24 + 0x83e84)" * (cast_expression "(code **)(pcVar24 + 0x83e84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x83e84)" ( (binary_expression "pcVar24 + 0x83e84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }" { (expression_statement "iVar6 = (int)*(char *)(iVar5 + 5);" (assignment_expression "iVar6 = (int)*(char *)(iVar5 + 5)" identifier = (cast_expression "(int)*(char *)(iVar5 + 5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar5 + 5)" * (cast_expression "(char *)(iVar5 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) )))))) ;) (if_statement "if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }" { (if_statement "if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }" if (parenthesized_expression "(iVar6 - 0x61U < 0x1a)" ( (binary_expression "iVar6 - 0x61U < 0x1a" (binary_expression "iVar6 - 0x61U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }" { (expression_statement "iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);" (assignment_expression "iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20)" identifier = (cast_expression "(int)(char)(*(char *)(iVar5 + 5) + -0x20)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(*(char *)(iVar5 + 5) + -0x20)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(*(char *)(iVar5 + 5) + -0x20)" ( (binary_expression "*(char *)(iVar5 + 5) + -0x20" (pointer_expression "*(char *)(iVar5 + 5)" * (cast_expression "(char *)(iVar5 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) )))) + number_literal) ))))) ;) })) (return_statement "return iVar6;" return identifier ;) })) })) (return_statement "return 0x49;" return number_literal ;) })))
(translation_unit "uerr_t ftp_epsv(int csock,ip_address *ip,int *port)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  uerr_t uVar5;\n  char **ppcVar6;\n  char **ppcVar7;\n  undefined4 *bufsize;\n  char **buf;\n  undefined8 *bufsize_00;\n  int iVar8;\n  char *pcVar9;\n  uint uVar10;\n  char cVar12;\n  char **ppcVar11;\n  int iVar13;\n  uint in_a3;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  double in_f12_13;\n  char *pcStack_258;\n  int iStack_254;\n  uerr_t uStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  uerr_t uStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  char *pcStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  uerr_t uStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  char **ppcStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  uerr_t uStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  char *pcStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  uerr_t uStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  char **ppcStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  uerr_t uStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  uerr_t uStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *respline;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (ip->family == 2) {\n    pcVar9 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    pcVar9 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  pcVar3 = ftp_request(PTR_s_hallenge__000af46c + -0x15ec,pcVar9);\n  iVar4 = (*(code *)PTR_strlen_000afc68)(pcVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  pcVar9 = pcVar3;\n  iVar4 = fd_write(csock,pcVar3,iVar4,in_f12_13);\n  cVar12 = (char)pcVar9;\n  if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (*(code *)PTR_free_000afd08)(pcVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar11 = &respline;\n    uVar5 = ftp_response(csock,ppcVar11);\n    cVar12 = (char)ppcVar11;\n    if (uVar5 == FTPOK) {\n      csock = (int)respline;\n      if (*respline == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }\n      else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return uVar5;\n  }\n  pcVar19 = ftp_type;\n  iVar4 = local_1c;\n  puVar18 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar18 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar15 = *(int **)(puVar18 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar15;\n  acStack_58[0] = cVar12;\n  uStack_50 = uVar5;\n  piStack_48 = port;\n  pcStack_44 = pcVar19;\n  ppcVar6 = (char **)ftp_request((char *)(*(int *)(puVar18 + 0x84594) + -0x15d4),acStack_58);\n  iVar8 = (**(code **)(puStack_70 + -0x77c8))(ppcVar6);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  ppcVar11 = ppcVar6;\n  iVar8 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);\n  if (iVar8 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    ppcVar11 = &pcStack_5c;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_5c;\n      if (ppcVar11 == (char **)0x32) {\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }\n    }\n  }\n  if (iStack_54 == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(puStack_70 + -0x785c);\n  pcVar20 = ftp_cwd;\n  iVar8 = iStack_54;\n  (*pcVar19)();\n  pcStack_b0 = pcVar19 + 0x8c410;\n  piVar16 = *(int **)(pcVar19 + 0x84c1c);\n  iStack_9c = *piVar16;\n  ppcStack_98 = ppcVar6;\n  piStack_94 = piVar15;\n  iStack_90 = iVar4;\n  pcStack_8c = pcVar20;\n  pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x8444c) + -0x15cc),(char *)ppcVar11);\n  iVar4 = (**(code **)(pcStack_b0 + -0x77c8))(pcVar9);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar13 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);\n  if (iVar13 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(pcVar9);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    uVar5 = ftp_response(iVar8,&pcStack_a0);\n    if (uVar5 == FTPOK) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }\n  if (iStack_9c == *piVar16) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar20 = ftp_rest;\n  iVar13 = iStack_9c;\n  (*pcVar19)();\n  pcStack_f0 = pcVar19 + 0x8c2b4;\n  piVar15 = *(int **)(pcVar19 + 0x84ac0);\n  iStack_dc = *piVar15;\n  pcStack_d8 = pcVar9;\n  piStack_d4 = piVar16;\n  iStack_d0 = iVar8;\n  pcStack_cc = pcVar20;\n  pcVar9 = (char *)(**(code **)(pcVar19 + 0x8451c))(iVar4,in_a3);\n  ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8),pcVar9);\n  iVar4 = (**(code **)(pcStack_f0 + -0x77c8))(ppcVar6);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  ppcVar11 = ppcVar6;\n  iVar4 = fd_write(iVar13,(char *)ppcVar6,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    ppcVar11 = &pcStack_e0;\n    uVar5 = ftp_response(iVar13,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_e0;\n      if (ppcVar11 == (char **)&DAT_00000033) {\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }\n    }\n  }\n  if (iStack_dc == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar20 = ftp_retr;\n  iVar4 = iStack_dc;\n  (*pcVar19)();\n  piVar16 = *(int **)(pcVar19 + 0x8496c);\n  iStack_11c = *piVar16;\n  ppcStack_118 = ppcVar6;\n  piStack_114 = piVar15;\n  iStack_110 = iVar13;\n  pcStack_10c = pcVar20;\n  ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0),(char *)ppcVar11);\n  iVar8 = (**(code **)(pcVar19 + 0x84998))(ppcVar6);\n  uVar21 = *(undefined8 *)(*(int *)(pcVar19 + 0x84198) + 0x40b8);\n  ppcVar11 = ppcVar6;\n  iVar13 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);\n  if (iVar13 < 0) {\n    (**(code **)(pcVar19 + 0x84a38))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcVar19 + 0x84a38))();\n    ppcVar11 = &pcStack_120;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }\n  if (iStack_11c == *piVar16) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x84904);\n  iVar13 = iStack_11c;\n  (*pcVar19)();\n  pcStack_198 = pcVar19 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar19 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar21 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar14 = 0;\n  ppcStack_178 = ppcVar6;\n  piStack_174 = piVar16;\n  iStack_170 = iVar4;\n  pcStack_16c = (char *)csock;\n  if (iVar8 == 0) {\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b0);\n  }\n  else if (*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  }\n  iVar4 = *(int *)(pcStack_198 + -0x7c70);\n  uVar21 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar17 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  pcVar3 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  do {\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11);\n      bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7);\n      ppcVar6 = ppcVar7;\n      uStack_1a0 = uVar21;\n      iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);\n        uVar5 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar6 = &pcStack_180;\n      uVar5 = ftp_response(iVar13,&pcStack_180);\n      pcVar9 = pcVar3;\n      if (uVar5 != FTPOK) break;\n      ppcVar6 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar14 = 0;\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }\n      uStack_18c = uVar5;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      uVar5 = uStack_18c;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)0x1);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_198 + -0x785c);\n  pcVar20 = ftp_syst;\n  pcVar9 = pcStack_17c;\n  (*pcVar19)();\n  pcStack_1e0 = pcVar19 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar19 + 0x84598);\n  iStack_1d4 = *piVar15;\n  ppcStack_1d0 = ppcVar7;\n  iStack_1cc = iVar14;\n  iStack_1c8 = iVar13;\n  iStack_1c4 = iVar4 + -0x6ee0;\n  pcStack_1c0 = pcVar3;\n  ppcStack_1bc = ppcVar11;\n  uStack_1b8 = uVar17;\n  pcStack_1b4 = pcVar20;\n  ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c),(char *)0x0);\n  iVar4 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar7);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar11 = ppcVar7;\n  iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar11 = &pcStack_1d8;\n    uVar5 = ftp_response((int)pcVar9,ppcVar11);\n    pcVar3 = pcStack_1d8;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_1d8 == '5') {\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar20 = ftp_pwd;\n  iVar4 = iStack_1d4;\n  (*pcVar19)();\n  pcStack_220 = pcVar19 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar19 + 0x84298);\n  iStack_214 = *piVar16;\n  uStack_20c = uVar5;\n  piStack_208 = piVar15;\n  pcStack_204 = pcVar9;\n  puStack_200 = bufsize;\n  pcStack_1fc = pcVar20;\n  buf = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500),(char *)0x0);\n  bufsize_00 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(buf);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  ppcVar7 = buf;\n  iVar8 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);\n  if (iVar8 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_220 + -0x7728))(buf);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    ppcVar7 = &pcStack_218;\n    uVar5 = ftp_response(iVar4,ppcVar7);\n    if (uVar5 == FTPOK) {\n      iVar4 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar5 = FTPSRVERR;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar16) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_220 + -0x785c);\n  pcVar20 = ftp_size;\n  iVar8 = iStack_214;\n  (*pcVar19)();\n  piVar15 = *(int **)(pcVar19 + 0x840f4);\n  iStack_254 = *piVar15;\n  uStack_250 = uVar5;\n  piStack_24c = piVar16;\n  iStack_248 = iVar4;\n  ppcStack_244 = ppcVar11;\n  ppcStack_240 = ppcVar6;\n  pcStack_23c = pcVar20;\n  pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x83924) + -0x14fc),(char *)ppcVar7);\n  iVar4 = (**(code **)(pcVar19 + 0x84120))(pcVar9);\n  iVar4 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcVar19 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\n  else {\n    (**(code **)(pcVar19 + 0x841c0))();\n    uVar5 = ftp_response(iVar8,&pcStack_258);\n    pcVar9 = pcStack_258;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_258 == '5') {\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar20)(pcStack_258);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x8408c);\n  iVar4 = iStack_254;\n  (*pcVar19)();\n  if (iVar4 == 0) {\n    return 0x49;\n  }\n  iVar8 = (**(code **)(pcVar19 + 0x83e84))();\n  if (iVar8 == 0) {\n    uVar5 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar5 != NOCONERROR) {\n      if (uVar5 - 0x61 < 0x1a) {\n        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar5;\n    }\n  }\n  return 0x49;\n}\n\n" (function_definition "uerr_t ftp_epsv(int csock,ip_address *ip,int *port)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  uerr_t uVar5;\n  char **ppcVar6;\n  char **ppcVar7;\n  undefined4 *bufsize;\n  char **buf;\n  undefined8 *bufsize_00;\n  int iVar8;\n  char *pcVar9;\n  uint uVar10;\n  char cVar12;\n  char **ppcVar11;\n  int iVar13;\n  uint in_a3;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  double in_f12_13;\n  char *pcStack_258;\n  int iStack_254;\n  uerr_t uStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  uerr_t uStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  char *pcStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  uerr_t uStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  char **ppcStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  uerr_t uStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  char *pcStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  uerr_t uStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  char **ppcStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  uerr_t uStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  uerr_t uStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *respline;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (ip->family == 2) {\n    pcVar9 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    pcVar9 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  pcVar3 = ftp_request(PTR_s_hallenge__000af46c + -0x15ec,pcVar9);\n  iVar4 = (*(code *)PTR_strlen_000afc68)(pcVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  pcVar9 = pcVar3;\n  iVar4 = fd_write(csock,pcVar3,iVar4,in_f12_13);\n  cVar12 = (char)pcVar9;\n  if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (*(code *)PTR_free_000afd08)(pcVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar11 = &respline;\n    uVar5 = ftp_response(csock,ppcVar11);\n    cVar12 = (char)ppcVar11;\n    if (uVar5 == FTPOK) {\n      csock = (int)respline;\n      if (*respline == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }\n      else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return uVar5;\n  }\n  pcVar19 = ftp_type;\n  iVar4 = local_1c;\n  puVar18 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar18 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar15 = *(int **)(puVar18 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar15;\n  acStack_58[0] = cVar12;\n  uStack_50 = uVar5;\n  piStack_48 = port;\n  pcStack_44 = pcVar19;\n  ppcVar6 = (char **)ftp_request((char *)(*(int *)(puVar18 + 0x84594) + -0x15d4),acStack_58);\n  iVar8 = (**(code **)(puStack_70 + -0x77c8))(ppcVar6);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  ppcVar11 = ppcVar6;\n  iVar8 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);\n  if (iVar8 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    ppcVar11 = &pcStack_5c;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_5c;\n      if (ppcVar11 == (char **)0x32) {\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }\n    }\n  }\n  if (iStack_54 == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(puStack_70 + -0x785c);\n  pcVar20 = ftp_cwd;\n  iVar8 = iStack_54;\n  (*pcVar19)();\n  pcStack_b0 = pcVar19 + 0x8c410;\n  piVar16 = *(int **)(pcVar19 + 0x84c1c);\n  iStack_9c = *piVar16;\n  ppcStack_98 = ppcVar6;\n  piStack_94 = piVar15;\n  iStack_90 = iVar4;\n  pcStack_8c = pcVar20;\n  pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x8444c) + -0x15cc),(char *)ppcVar11);\n  iVar4 = (**(code **)(pcStack_b0 + -0x77c8))(pcVar9);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar13 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);\n  if (iVar13 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(pcVar9);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    uVar5 = ftp_response(iVar8,&pcStack_a0);\n    if (uVar5 == FTPOK) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }\n  if (iStack_9c == *piVar16) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar20 = ftp_rest;\n  iVar13 = iStack_9c;\n  (*pcVar19)();\n  pcStack_f0 = pcVar19 + 0x8c2b4;\n  piVar15 = *(int **)(pcVar19 + 0x84ac0);\n  iStack_dc = *piVar15;\n  pcStack_d8 = pcVar9;\n  piStack_d4 = piVar16;\n  iStack_d0 = iVar8;\n  pcStack_cc = pcVar20;\n  pcVar9 = (char *)(**(code **)(pcVar19 + 0x8451c))(iVar4,in_a3);\n  ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8),pcVar9);\n  iVar4 = (**(code **)(pcStack_f0 + -0x77c8))(ppcVar6);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  ppcVar11 = ppcVar6;\n  iVar4 = fd_write(iVar13,(char *)ppcVar6,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    ppcVar11 = &pcStack_e0;\n    uVar5 = ftp_response(iVar13,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_e0;\n      if (ppcVar11 == (char **)&DAT_00000033) {\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }\n    }\n  }\n  if (iStack_dc == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar20 = ftp_retr;\n  iVar4 = iStack_dc;\n  (*pcVar19)();\n  piVar16 = *(int **)(pcVar19 + 0x8496c);\n  iStack_11c = *piVar16;\n  ppcStack_118 = ppcVar6;\n  piStack_114 = piVar15;\n  iStack_110 = iVar13;\n  pcStack_10c = pcVar20;\n  ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0),(char *)ppcVar11);\n  iVar8 = (**(code **)(pcVar19 + 0x84998))(ppcVar6);\n  uVar21 = *(undefined8 *)(*(int *)(pcVar19 + 0x84198) + 0x40b8);\n  ppcVar11 = ppcVar6;\n  iVar13 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);\n  if (iVar13 < 0) {\n    (**(code **)(pcVar19 + 0x84a38))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcVar19 + 0x84a38))();\n    ppcVar11 = &pcStack_120;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }\n  if (iStack_11c == *piVar16) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x84904);\n  iVar13 = iStack_11c;\n  (*pcVar19)();\n  pcStack_198 = pcVar19 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar19 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar21 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar14 = 0;\n  ppcStack_178 = ppcVar6;\n  piStack_174 = piVar16;\n  iStack_170 = iVar4;\n  pcStack_16c = (char *)csock;\n  if (iVar8 == 0) {\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b0);\n  }\n  else if (*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  }\n  iVar4 = *(int *)(pcStack_198 + -0x7c70);\n  uVar21 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar17 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  pcVar3 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  do {\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11);\n      bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7);\n      ppcVar6 = ppcVar7;\n      uStack_1a0 = uVar21;\n      iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);\n        uVar5 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar6 = &pcStack_180;\n      uVar5 = ftp_response(iVar13,&pcStack_180);\n      pcVar9 = pcVar3;\n      if (uVar5 != FTPOK) break;\n      ppcVar6 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar14 = 0;\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }\n      uStack_18c = uVar5;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      uVar5 = uStack_18c;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)0x1);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_198 + -0x785c);\n  pcVar20 = ftp_syst;\n  pcVar9 = pcStack_17c;\n  (*pcVar19)();\n  pcStack_1e0 = pcVar19 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar19 + 0x84598);\n  iStack_1d4 = *piVar15;\n  ppcStack_1d0 = ppcVar7;\n  iStack_1cc = iVar14;\n  iStack_1c8 = iVar13;\n  iStack_1c4 = iVar4 + -0x6ee0;\n  pcStack_1c0 = pcVar3;\n  ppcStack_1bc = ppcVar11;\n  uStack_1b8 = uVar17;\n  pcStack_1b4 = pcVar20;\n  ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c),(char *)0x0);\n  iVar4 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar7);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar11 = ppcVar7;\n  iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar11 = &pcStack_1d8;\n    uVar5 = ftp_response((int)pcVar9,ppcVar11);\n    pcVar3 = pcStack_1d8;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_1d8 == '5') {\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar20 = ftp_pwd;\n  iVar4 = iStack_1d4;\n  (*pcVar19)();\n  pcStack_220 = pcVar19 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar19 + 0x84298);\n  iStack_214 = *piVar16;\n  uStack_20c = uVar5;\n  piStack_208 = piVar15;\n  pcStack_204 = pcVar9;\n  puStack_200 = bufsize;\n  pcStack_1fc = pcVar20;\n  buf = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500),(char *)0x0);\n  bufsize_00 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(buf);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  ppcVar7 = buf;\n  iVar8 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);\n  if (iVar8 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_220 + -0x7728))(buf);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    ppcVar7 = &pcStack_218;\n    uVar5 = ftp_response(iVar4,ppcVar7);\n    if (uVar5 == FTPOK) {\n      iVar4 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar5 = FTPSRVERR;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar16) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_220 + -0x785c);\n  pcVar20 = ftp_size;\n  iVar8 = iStack_214;\n  (*pcVar19)();\n  piVar15 = *(int **)(pcVar19 + 0x840f4);\n  iStack_254 = *piVar15;\n  uStack_250 = uVar5;\n  piStack_24c = piVar16;\n  iStack_248 = iVar4;\n  ppcStack_244 = ppcVar11;\n  ppcStack_240 = ppcVar6;\n  pcStack_23c = pcVar20;\n  pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x83924) + -0x14fc),(char *)ppcVar7);\n  iVar4 = (**(code **)(pcVar19 + 0x84120))(pcVar9);\n  iVar4 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcVar19 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\n  else {\n    (**(code **)(pcVar19 + 0x841c0))();\n    uVar5 = ftp_response(iVar8,&pcStack_258);\n    pcVar9 = pcStack_258;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_258 == '5') {\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar20)(pcStack_258);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x8408c);\n  iVar4 = iStack_254;\n  (*pcVar19)();\n  if (iVar4 == 0) {\n    return 0x49;\n  }\n  iVar8 = (**(code **)(pcVar19 + 0x83e84))();\n  if (iVar8 == 0) {\n    uVar5 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar5 != NOCONERROR) {\n      if (uVar5 - 0x61 < 0x1a) {\n        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar5;\n    }\n  }\n  return 0x49;\n}" type_identifier (function_declarator "ftp_epsv(int csock,ip_address *ip,int *port)" identifier (parameter_list "(int csock,ip_address *ip,int *port)" ( (parameter_declaration "int csock" primitive_type identifier) , (parameter_declaration "ip_address *ip" type_identifier (pointer_declarator "*ip" * identifier)) , (parameter_declaration "int *port" primitive_type (pointer_declarator "*port" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int iVar4;\n  uerr_t uVar5;\n  char **ppcVar6;\n  char **ppcVar7;\n  undefined4 *bufsize;\n  char **buf;\n  undefined8 *bufsize_00;\n  int iVar8;\n  char *pcVar9;\n  uint uVar10;\n  char cVar12;\n  char **ppcVar11;\n  int iVar13;\n  uint in_a3;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 uVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  undefined8 uVar21;\n  double in_f12_13;\n  char *pcStack_258;\n  int iStack_254;\n  uerr_t uStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  uerr_t uStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  char *pcStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  uerr_t uStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  char **ppcStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  uerr_t uStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  char *pcStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  uerr_t uStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  char **ppcStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  uerr_t uStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  uerr_t uStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *respline;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (ip->family == 2) {\n    pcVar9 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    pcVar9 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  pcVar3 = ftp_request(PTR_s_hallenge__000af46c + -0x15ec,pcVar9);\n  iVar4 = (*(code *)PTR_strlen_000afc68)(pcVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  pcVar9 = pcVar3;\n  iVar4 = fd_write(csock,pcVar3,iVar4,in_f12_13);\n  cVar12 = (char)pcVar9;\n  if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (*(code *)PTR_free_000afd08)(pcVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar11 = &respline;\n    uVar5 = ftp_response(csock,ppcVar11);\n    cVar12 = (char)ppcVar11;\n    if (uVar5 == FTPOK) {\n      csock = (int)respline;\n      if (*respline == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }\n      else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return uVar5;\n  }\n  pcVar19 = ftp_type;\n  iVar4 = local_1c;\n  puVar18 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar18 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar15 = *(int **)(puVar18 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar15;\n  acStack_58[0] = cVar12;\n  uStack_50 = uVar5;\n  piStack_48 = port;\n  pcStack_44 = pcVar19;\n  ppcVar6 = (char **)ftp_request((char *)(*(int *)(puVar18 + 0x84594) + -0x15d4),acStack_58);\n  iVar8 = (**(code **)(puStack_70 + -0x77c8))(ppcVar6);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  ppcVar11 = ppcVar6;\n  iVar8 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);\n  if (iVar8 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    ppcVar11 = &pcStack_5c;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_5c;\n      if (ppcVar11 == (char **)0x32) {\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }\n    }\n  }\n  if (iStack_54 == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(puStack_70 + -0x785c);\n  pcVar20 = ftp_cwd;\n  iVar8 = iStack_54;\n  (*pcVar19)();\n  pcStack_b0 = pcVar19 + 0x8c410;\n  piVar16 = *(int **)(pcVar19 + 0x84c1c);\n  iStack_9c = *piVar16;\n  ppcStack_98 = ppcVar6;\n  piStack_94 = piVar15;\n  iStack_90 = iVar4;\n  pcStack_8c = pcVar20;\n  pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x8444c) + -0x15cc),(char *)ppcVar11);\n  iVar4 = (**(code **)(pcStack_b0 + -0x77c8))(pcVar9);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar13 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);\n  if (iVar13 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(pcVar9);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    uVar5 = ftp_response(iVar8,&pcStack_a0);\n    if (uVar5 == FTPOK) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }\n  if (iStack_9c == *piVar16) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar20 = ftp_rest;\n  iVar13 = iStack_9c;\n  (*pcVar19)();\n  pcStack_f0 = pcVar19 + 0x8c2b4;\n  piVar15 = *(int **)(pcVar19 + 0x84ac0);\n  iStack_dc = *piVar15;\n  pcStack_d8 = pcVar9;\n  piStack_d4 = piVar16;\n  iStack_d0 = iVar8;\n  pcStack_cc = pcVar20;\n  pcVar9 = (char *)(**(code **)(pcVar19 + 0x8451c))(iVar4,in_a3);\n  ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8),pcVar9);\n  iVar4 = (**(code **)(pcStack_f0 + -0x77c8))(ppcVar6);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  ppcVar11 = ppcVar6;\n  iVar4 = fd_write(iVar13,(char *)ppcVar6,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    ppcVar11 = &pcStack_e0;\n    uVar5 = ftp_response(iVar13,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_e0;\n      if (ppcVar11 == (char **)&DAT_00000033) {\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }\n    }\n  }\n  if (iStack_dc == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar20 = ftp_retr;\n  iVar4 = iStack_dc;\n  (*pcVar19)();\n  piVar16 = *(int **)(pcVar19 + 0x8496c);\n  iStack_11c = *piVar16;\n  ppcStack_118 = ppcVar6;\n  piStack_114 = piVar15;\n  iStack_110 = iVar13;\n  pcStack_10c = pcVar20;\n  ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0),(char *)ppcVar11);\n  iVar8 = (**(code **)(pcVar19 + 0x84998))(ppcVar6);\n  uVar21 = *(undefined8 *)(*(int *)(pcVar19 + 0x84198) + 0x40b8);\n  ppcVar11 = ppcVar6;\n  iVar13 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);\n  if (iVar13 < 0) {\n    (**(code **)(pcVar19 + 0x84a38))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcVar19 + 0x84a38))();\n    ppcVar11 = &pcStack_120;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }\n  if (iStack_11c == *piVar16) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x84904);\n  iVar13 = iStack_11c;\n  (*pcVar19)();\n  pcStack_198 = pcVar19 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar19 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar21 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar14 = 0;\n  ppcStack_178 = ppcVar6;\n  piStack_174 = piVar16;\n  iStack_170 = iVar4;\n  pcStack_16c = (char *)csock;\n  if (iVar8 == 0) {\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b0);\n  }\n  else if (*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  }\n  iVar4 = *(int *)(pcStack_198 + -0x7c70);\n  uVar21 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar17 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  pcVar3 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  do {\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11);\n      bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7);\n      ppcVar6 = ppcVar7;\n      uStack_1a0 = uVar21;\n      iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);\n        uVar5 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar6 = &pcStack_180;\n      uVar5 = ftp_response(iVar13,&pcStack_180);\n      pcVar9 = pcVar3;\n      if (uVar5 != FTPOK) break;\n      ppcVar6 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar14 = 0;\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }\n      uStack_18c = uVar5;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      uVar5 = uStack_18c;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)0x1);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_198 + -0x785c);\n  pcVar20 = ftp_syst;\n  pcVar9 = pcStack_17c;\n  (*pcVar19)();\n  pcStack_1e0 = pcVar19 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar19 + 0x84598);\n  iStack_1d4 = *piVar15;\n  ppcStack_1d0 = ppcVar7;\n  iStack_1cc = iVar14;\n  iStack_1c8 = iVar13;\n  iStack_1c4 = iVar4 + -0x6ee0;\n  pcStack_1c0 = pcVar3;\n  ppcStack_1bc = ppcVar11;\n  uStack_1b8 = uVar17;\n  pcStack_1b4 = pcVar20;\n  ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c),(char *)0x0);\n  iVar4 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar7);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar11 = ppcVar7;\n  iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar11 = &pcStack_1d8;\n    uVar5 = ftp_response((int)pcVar9,ppcVar11);\n    pcVar3 = pcStack_1d8;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_1d8 == '5') {\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar20 = ftp_pwd;\n  iVar4 = iStack_1d4;\n  (*pcVar19)();\n  pcStack_220 = pcVar19 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar19 + 0x84298);\n  iStack_214 = *piVar16;\n  uStack_20c = uVar5;\n  piStack_208 = piVar15;\n  pcStack_204 = pcVar9;\n  puStack_200 = bufsize;\n  pcStack_1fc = pcVar20;\n  buf = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500),(char *)0x0);\n  bufsize_00 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(buf);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  ppcVar7 = buf;\n  iVar8 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);\n  if (iVar8 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_220 + -0x7728))(buf);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    ppcVar7 = &pcStack_218;\n    uVar5 = ftp_response(iVar4,ppcVar7);\n    if (uVar5 == FTPOK) {\n      iVar4 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar5 = FTPSRVERR;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar16) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcStack_220 + -0x785c);\n  pcVar20 = ftp_size;\n  iVar8 = iStack_214;\n  (*pcVar19)();\n  piVar15 = *(int **)(pcVar19 + 0x840f4);\n  iStack_254 = *piVar15;\n  uStack_250 = uVar5;\n  piStack_24c = piVar16;\n  iStack_248 = iVar4;\n  ppcStack_244 = ppcVar11;\n  ppcStack_240 = ppcVar6;\n  pcStack_23c = pcVar20;\n  pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x83924) + -0x14fc),(char *)ppcVar7);\n  iVar4 = (**(code **)(pcVar19 + 0x84120))(pcVar9);\n  iVar4 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcVar19 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\n  else {\n    (**(code **)(pcVar19 + 0x841c0))();\n    uVar5 = ftp_response(iVar8,&pcStack_258);\n    pcVar9 = pcStack_258;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_258 == '5') {\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar20)(pcStack_258);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar15) {\n    return uVar5;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x8408c);\n  iVar4 = iStack_254;\n  (*pcVar19)();\n  if (iVar4 == 0) {\n    return 0x49;\n  }\n  iVar8 = (**(code **)(pcVar19 + 0x83e84))();\n  if (iVar8 == 0) {\n    uVar5 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar5 != NOCONERROR) {\n      if (uVar5 - 0x61 < 0x1a) {\n        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar5;\n    }\n  }\n  return 0x49;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uerr_t uVar5;" type_identifier identifier ;) (declaration "char **ppcVar6;" primitive_type (pointer_declarator "**ppcVar6" * (pointer_declarator "*ppcVar6" * identifier)) ;) (declaration "char **ppcVar7;" primitive_type (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "undefined4 *bufsize;" type_identifier (pointer_declarator "*bufsize" * identifier) ;) (declaration "char **buf;" primitive_type (pointer_declarator "**buf" * (pointer_declarator "*buf" * identifier)) ;) (declaration "undefined8 *bufsize_00;" type_identifier (pointer_declarator "*bufsize_00" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "char **ppcVar11;" primitive_type (pointer_declarator "**ppcVar11" * (pointer_declarator "*ppcVar11" * identifier)) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint in_a3;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined8 uVar21;" type_identifier identifier ;) (declaration "double in_f12_13;" primitive_type identifier ;) (declaration "char *pcStack_258;" primitive_type (pointer_declarator "*pcStack_258" * identifier) ;) (declaration "int iStack_254;" primitive_type identifier ;) (declaration "uerr_t uStack_250;" type_identifier identifier ;) (declaration "int *piStack_24c;" primitive_type (pointer_declarator "*piStack_24c" * identifier) ;) (declaration "int iStack_248;" primitive_type identifier ;) (declaration "char **ppcStack_244;" primitive_type (pointer_declarator "**ppcStack_244" * (pointer_declarator "*ppcStack_244" * identifier)) ;) (declaration "char **ppcStack_240;" primitive_type (pointer_declarator "**ppcStack_240" * (pointer_declarator "*ppcStack_240" * identifier)) ;) (declaration "code *pcStack_23c;" type_identifier (pointer_declarator "*pcStack_23c" * identifier) ;) (declaration "undefined8 uStack_228;" type_identifier identifier ;) (declaration "code *pcStack_220;" type_identifier (pointer_declarator "*pcStack_220" * identifier) ;) (declaration "char *pcStack_218;" primitive_type (pointer_declarator "*pcStack_218" * identifier) ;) (declaration "int iStack_214;" primitive_type identifier ;) (declaration "uerr_t uStack_20c;" type_identifier identifier ;) (declaration "int *piStack_208;" primitive_type (pointer_declarator "*piStack_208" * identifier) ;) (declaration "char *pcStack_204;" primitive_type (pointer_declarator "*pcStack_204" * identifier) ;) (declaration "undefined4 *puStack_200;" type_identifier (pointer_declarator "*puStack_200" * identifier) ;) (declaration "code *pcStack_1fc;" type_identifier (pointer_declarator "*pcStack_1fc" * identifier) ;) (declaration "undefined8 uStack_1e8;" type_identifier identifier ;) (declaration "code *pcStack_1e0;" type_identifier (pointer_declarator "*pcStack_1e0" * identifier) ;) (declaration "char *pcStack_1d8;" primitive_type (pointer_declarator "*pcStack_1d8" * identifier) ;) (declaration "int iStack_1d4;" primitive_type identifier ;) (declaration "char **ppcStack_1d0;" primitive_type (pointer_declarator "**ppcStack_1d0" * (pointer_declarator "*ppcStack_1d0" * identifier)) ;) (declaration "int iStack_1cc;" primitive_type identifier ;) (declaration "int iStack_1c8;" primitive_type identifier ;) (declaration "int iStack_1c4;" primitive_type identifier ;) (declaration "char *pcStack_1c0;" primitive_type (pointer_declarator "*pcStack_1c0" * identifier) ;) (declaration "char **ppcStack_1bc;" primitive_type (pointer_declarator "**ppcStack_1bc" * (pointer_declarator "*ppcStack_1bc" * identifier)) ;) (declaration "undefined4 uStack_1b8;" type_identifier identifier ;) (declaration "code *pcStack_1b4;" type_identifier (pointer_declarator "*pcStack_1b4" * identifier) ;) (declaration "undefined8 uStack_1a0;" type_identifier identifier ;) (declaration "code *pcStack_198;" type_identifier (pointer_declarator "*pcStack_198" * identifier) ;) (declaration "uerr_t uStack_18c;" type_identifier identifier ;) (declaration "undefined4 *puStack_188;" type_identifier (pointer_declarator "*puStack_188" * identifier) ;) (declaration "byte *pbStack_184;" type_identifier (pointer_declarator "*pbStack_184" * identifier) ;) (declaration "char *pcStack_180;" primitive_type (pointer_declarator "*pcStack_180" * identifier) ;) (declaration "char *pcStack_17c;" primitive_type (pointer_declarator "*pcStack_17c" * identifier) ;) (declaration "char **ppcStack_178;" primitive_type (pointer_declarator "**ppcStack_178" * (pointer_declarator "*ppcStack_178" * identifier)) ;) (declaration "int *piStack_174;" primitive_type (pointer_declarator "*piStack_174" * identifier) ;) (declaration "int iStack_170;" primitive_type identifier ;) (declaration "char *pcStack_16c;" primitive_type (pointer_declarator "*pcStack_16c" * identifier) ;) (declaration "byte *pbStack_138;" type_identifier (pointer_declarator "*pbStack_138" * identifier) ;) (declaration "char *pcStack_120;" primitive_type (pointer_declarator "*pcStack_120" * identifier) ;) (declaration "int iStack_11c;" primitive_type identifier ;) (declaration "char **ppcStack_118;" primitive_type (pointer_declarator "**ppcStack_118" * (pointer_declarator "*ppcStack_118" * identifier)) ;) (declaration "int *piStack_114;" primitive_type (pointer_declarator "*piStack_114" * identifier) ;) (declaration "int iStack_110;" primitive_type identifier ;) (declaration "code *pcStack_10c;" type_identifier (pointer_declarator "*pcStack_10c" * identifier) ;) (declaration "undefined8 uStack_f8;" type_identifier identifier ;) (declaration "code *pcStack_f0;" type_identifier (pointer_declarator "*pcStack_f0" * identifier) ;) (declaration "uerr_t uStack_e4;" type_identifier identifier ;) (declaration "char *pcStack_e0;" primitive_type (pointer_declarator "*pcStack_e0" * identifier) ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "char *pcStack_d8;" primitive_type (pointer_declarator "*pcStack_d8" * identifier) ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "code *pcStack_cc;" type_identifier (pointer_declarator "*pcStack_cc" * identifier) ;) (declaration "undefined8 uStack_b8;" type_identifier identifier ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "uerr_t uStack_a4;" type_identifier identifier ;) (declaration "char *pcStack_a0;" primitive_type (pointer_declarator "*pcStack_a0" * identifier) ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "char **ppcStack_98;" primitive_type (pointer_declarator "**ppcStack_98" * (pointer_declarator "*ppcStack_98" * identifier)) ;) (declaration "int *piStack_94;" primitive_type (pointer_declarator "*piStack_94" * identifier) ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "code *pcStack_8c;" type_identifier (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "undefined8 uStack_78;" type_identifier identifier ;) (declaration "undefined *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "uerr_t uStack_64;" type_identifier identifier ;) (declaration "char *pcStack_5c;" primitive_type (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "char acStack_58 [4];" primitive_type (array_declarator "acStack_58 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "uerr_t uStack_50;" type_identifier identifier ;) (declaration "undefined *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "int *piStack_48;" primitive_type (pointer_declarator "*piStack_48" * identifier) ;) (declaration "code *pcStack_44;" type_identifier (pointer_declarator "*pcStack_44" * identifier) ;) (declaration "undefined8 local_30;" type_identifier identifier ;) (declaration "char *respline;" primitive_type (pointer_declarator "*respline" * identifier) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000afc3c" * (cast_expression "(int *)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (ip->family == 2) {\n    pcVar9 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    pcVar9 = PTR_s_hallenge__000af46c + 0x1550;\n  }" if (parenthesized_expression "(ip->family == 2)" ( (binary_expression "ip->family == 2" (field_expression "ip->family" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    pcVar9 = PTR_DAT_000af498 + -0x6670;\n  }" { (expression_statement "pcVar9 = PTR_DAT_000af498 + -0x6670;" (assignment_expression "pcVar9 = PTR_DAT_000af498 + -0x6670" identifier = (binary_expression "PTR_DAT_000af498 + -0x6670" identifier + number_literal)) ;) }) (else_clause "else {\n    pcVar9 = PTR_s_hallenge__000af46c + 0x1550;\n  }" else (compound_statement "{\n    pcVar9 = PTR_s_hallenge__000af46c + 0x1550;\n  }" { (expression_statement "pcVar9 = PTR_s_hallenge__000af46c + 0x1550;" (assignment_expression "pcVar9 = PTR_s_hallenge__000af46c + 0x1550" identifier = (binary_expression "PTR_s_hallenge__000af46c + 0x1550" identifier + number_literal)) ;) }))) (expression_statement "pcVar3 = ftp_request(PTR_s_hallenge__000af46c + -0x15ec,pcVar9);" (assignment_expression "pcVar3 = ftp_request(PTR_s_hallenge__000af46c + -0x15ec,pcVar9)" identifier = (call_expression "ftp_request(PTR_s_hallenge__000af46c + -0x15ec,pcVar9)" identifier (argument_list "(PTR_s_hallenge__000af46c + -0x15ec,pcVar9)" ( (binary_expression "PTR_s_hallenge__000af46c + -0x15ec" identifier + number_literal) , identifier )))) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_000afc68)(pcVar3);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_000afc68)(pcVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000afc68)(pcVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000afc68)" ( (pointer_expression "*(code *)PTR_strlen_000afc68" * (cast_expression "(code *)PTR_strlen_000afc68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);" (assignment_expression "local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" * (cast_expression "(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000af468 + 0x40b8)" ( (binary_expression "PTR_LAB_000af468 + 0x40b8" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = pcVar3;" (assignment_expression "pcVar9 = pcVar3" identifier = identifier) ;) (expression_statement "iVar4 = fd_write(csock,pcVar3,iVar4,in_f12_13);" (assignment_expression "iVar4 = fd_write(csock,pcVar3,iVar4,in_f12_13)" identifier = (call_expression "fd_write(csock,pcVar3,iVar4,in_f12_13)" identifier (argument_list "(csock,pcVar3,iVar4,in_f12_13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "cVar12 = (char)pcVar9;" (assignment_expression "cVar12 = (char)pcVar9" identifier = (cast_expression "(char)pcVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (*(code *)PTR_free_000afd08)(pcVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar11 = &respline;\n    uVar5 = ftp_response(csock,ppcVar11);\n    cVar12 = (char)ppcVar11;\n    if (uVar5 == FTPOK) {\n      csock = (int)respline;\n      if (*respline == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }\n      else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }\n    }\n  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar5 = WRITEFAILED;\n    (*(code *)PTR_free_000afd08)(pcVar3);\n  }" { (expression_statement "uVar5 = WRITEFAILED;" (assignment_expression "uVar5 = WRITEFAILED" identifier = identifier) ;) (expression_statement "(*(code *)PTR_free_000afd08)(pcVar3);" (call_expression "(*(code *)PTR_free_000afd08)(pcVar3)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar3)" ( identifier ))) ;) }) (else_clause "else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar11 = &respline;\n    uVar5 = ftp_response(csock,ppcVar11);\n    cVar12 = (char)ppcVar11;\n    if (uVar5 == FTPOK) {\n      csock = (int)respline;\n      if (*respline == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }\n      else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }\n    }\n  }" else (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    ppcVar11 = &respline;\n    uVar5 = ftp_response(csock,ppcVar11);\n    cVar12 = (char)ppcVar11;\n    if (uVar5 == FTPOK) {\n      csock = (int)respline;\n      if (*respline == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }\n      else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }\n    }\n  }" { (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar11 = &respline;" (assignment_expression "ppcVar11 = &respline" identifier = (pointer_expression "&respline" & identifier)) ;) (expression_statement "uVar5 = ftp_response(csock,ppcVar11);" (assignment_expression "uVar5 = ftp_response(csock,ppcVar11)" identifier = (call_expression "ftp_response(csock,ppcVar11)" identifier (argument_list "(csock,ppcVar11)" ( identifier , identifier )))) ;) (expression_statement "cVar12 = (char)ppcVar11;" (assignment_expression "cVar12 = (char)ppcVar11" identifier = (cast_expression "(char)ppcVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar5 == FTPOK) {\n      csock = (int)respline;\n      if (*respline == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }\n      else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }\n    }" if (parenthesized_expression "(uVar5 == FTPOK)" ( (binary_expression "uVar5 == FTPOK" identifier == identifier) )) (compound_statement "{\n      csock = (int)respline;\n      if (*respline == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }\n      else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }\n    }" { (expression_statement "csock = (int)respline;" (assignment_expression "csock = (int)respline" identifier = (cast_expression "(int)respline" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*respline == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }\n      else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }" if (parenthesized_expression "(*respline == '2')" ( (binary_expression "*respline == '2'" (pointer_expression "*respline" * identifier) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }\n        cVar12 = '(';\n        iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);\n        puVar18 = PTR_free_000afd08;\n        if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        uVar5 = FTPINVPASV;\n        (*(code *)PTR_free_000afd08)(csock);\n      }" { (if_statement "if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }" if (parenthesized_expression "(PTR_opt_000af488[0x16b] != '\0')" ( (binary_expression "PTR_opt_000af488[0x16b] != '\0'" (subscript_expression "PTR_opt_000af488[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);\n          csock = (int)respline;\n        }" { (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,respline)" identifier (argument_list "(PTR_s_hallenge__000af46c + -0x15e4,respline)" ( (binary_expression "PTR_s_hallenge__000af46c + -0x15e4" identifier + number_literal) , identifier ))) ;) (expression_statement "csock = (int)respline;" (assignment_expression "csock = (int)respline" identifier = (cast_expression "(int)respline" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "cVar12 = '(';" (assignment_expression "cVar12 = '('" identifier = (char_literal "'('" ' character ')) ;) (expression_statement "iVar4 = (*(code *)PTR_strchr_000afdc8)(csock);" (assignment_expression "iVar4 = (*(code *)PTR_strchr_000afdc8)(csock)" identifier = (call_expression "(*(code *)PTR_strchr_000afdc8)(csock)" (parenthesized_expression "(*(code *)PTR_strchr_000afdc8)" ( (pointer_expression "*(code *)PTR_strchr_000afdc8" * (cast_expression "(code *)PTR_strchr_000afdc8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(csock)" ( identifier )))) ;) (expression_statement "puVar18 = PTR_free_000afd08;" (assignment_expression "puVar18 = PTR_free_000afd08" identifier = identifier) ;) (if_statement "if (((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)) {\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }" if (parenthesized_expression "(((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8))" ( (binary_expression "((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)) &&\n           (*(char *)(iVar4 + 2) == iVar8)" (parenthesized_expression "((iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e))" ( (binary_expression "(iVar4 != 0) && (iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e)" ( (comma_expression "iVar8 = (int)*(char *)(iVar4 + 1), (iVar8 - 0x21U & 0xff) < 0x5e" (assignment_expression "iVar8 = (int)*(char *)(iVar4 + 1)" identifier = (cast_expression "(int)*(char *)(iVar4 + 1)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar4 + 1)" * (cast_expression "(char *)(iVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))))) , (binary_expression "(iVar8 - 0x21U & 0xff) < 0x5e" (parenthesized_expression "(iVar8 - 0x21U & 0xff)" ( (binary_expression "iVar8 - 0x21U & 0xff" (binary_expression "iVar8 - 0x21U" identifier - number_literal) & number_literal) )) < number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar4 + 2) == iVar8)" ( (binary_expression "*(char *)(iVar4 + 2) == iVar8" (pointer_expression "*(char *)(iVar4 + 2)" * (cast_expression "(char *)(iVar4 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 2)" ( (binary_expression "iVar4 + 2" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n          cVar12 = *(char *)(iVar4 + 3);\n          pcVar9 = (char *)(iVar4 + 4);\n          if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }" { (expression_statement "cVar12 = *(char *)(iVar4 + 3);" (assignment_expression "cVar12 = *(char *)(iVar4 + 3)" identifier = (pointer_expression "*(char *)(iVar4 + 3)" * (cast_expression "(char *)(iVar4 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 3)" ( (binary_expression "iVar4 + 3" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = (char *)(iVar4 + 4);" (assignment_expression "pcVar9 = (char *)(iVar4 + 4)" identifier = (cast_expression "(char *)(iVar4 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) ;) (if_statement "if (cVar12 == iVar8) {\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }" if (parenthesized_expression "(cVar12 == iVar8)" ( (binary_expression "cVar12 == iVar8" identifier == identifier) )) (compound_statement "{\n            iVar13 = (int)*pcVar9;\n            in_a3 = iVar13 - 0x30;\n            uVar10 = (uint)(in_a3 < 10);\n            iVar14 = 0;\n            if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }\n            cVar12 = (char)uVar10;\n            if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }" { (expression_statement "iVar13 = (int)*pcVar9;" (assignment_expression "iVar13 = (int)*pcVar9" identifier = (cast_expression "(int)*pcVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar9" * identifier))) ;) (expression_statement "in_a3 = iVar13 - 0x30;" (assignment_expression "in_a3 = iVar13 - 0x30" identifier = (binary_expression "iVar13 - 0x30" identifier - number_literal)) ;) (expression_statement "uVar10 = (uint)(in_a3 < 10);" (assignment_expression "uVar10 = (uint)(in_a3 < 10)" identifier = (call_expression "(uint)(in_a3 < 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_a3 < 10)" ( (binary_expression "in_a3 < 10" identifier < number_literal) )))) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (if_statement "if (uVar10 != 0) {\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar10 = 0;\n              do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);\n            }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              } while (in_a3 < 10);" do (compound_statement "{\n                pcVar3 = pcVar9 + 1;\n                uVar10 = (uVar10 + iVar14) * 2;\n                iVar14 = in_a3 + uVar10;\n                if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }\n                iVar13 = (int)*pcVar3;\n                in_a3 = iVar13 - 0x30;\n                uVar10 = iVar14 * 4;\n                pcVar9 = pcVar3;\n              }" { (expression_statement "pcVar3 = pcVar9 + 1;" (assignment_expression "pcVar3 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = (uVar10 + iVar14) * 2;" (assignment_expression "uVar10 = (uVar10 + iVar14) * 2" identifier = (binary_expression "(uVar10 + iVar14) * 2" (parenthesized_expression "(uVar10 + iVar14)" ( (binary_expression "uVar10 + iVar14" identifier + identifier) )) * number_literal)) ;) (expression_statement "iVar14 = in_a3 + uVar10;" (assignment_expression "iVar14 = in_a3 + uVar10" identifier = (binary_expression "in_a3 + uVar10" identifier + identifier)) ;) (if_statement "if ((char *)(iVar4 + 9) == pcVar3) {\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }" if (parenthesized_expression "((char *)(iVar4 + 9) == pcVar3)" ( (binary_expression "(char *)(iVar4 + 9) == pcVar3" (cast_expression "(char *)(iVar4 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 9)" ( (binary_expression "iVar4 + 9" identifier + number_literal) ))) == identifier) )) (compound_statement "{\n                  iVar13 = (int)pcVar9[1];\n                  pcVar9 = (char *)(iVar4 + 9);\n                  break;\n                }" { (expression_statement "iVar13 = (int)pcVar9[1];" (assignment_expression "iVar13 = (int)pcVar9[1]" identifier = (cast_expression "(int)pcVar9[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar9 = (char *)(iVar4 + 9);" (assignment_expression "pcVar9 = (char *)(iVar4 + 9)" identifier = (cast_expression "(char *)(iVar4 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 9)" ( (binary_expression "iVar4 + 9" identifier + number_literal) )))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar13 = (int)*pcVar3;" (assignment_expression "iVar13 = (int)*pcVar3" identifier = (cast_expression "(int)*pcVar3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar3" * identifier))) ;) (expression_statement "in_a3 = iVar13 - 0x30;" (assignment_expression "in_a3 = iVar13 - 0x30" identifier = (binary_expression "iVar13 - 0x30" identifier - number_literal)) ;) (expression_statement "uVar10 = iVar14 * 4;" (assignment_expression "uVar10 = iVar14 * 4" identifier = (binary_expression "iVar14 * 4" identifier * number_literal)) ;) (expression_statement "pcVar9 = pcVar3;" (assignment_expression "pcVar9 = pcVar3" identifier = identifier) ;) }) while (parenthesized_expression "(in_a3 < 10)" ( (binary_expression "in_a3 < 10" identifier < number_literal) )) ;) })) (expression_statement "cVar12 = (char)uVar10;" (assignment_expression "cVar12 = (char)uVar10" identifier = (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar8 == iVar13) {\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }" if (parenthesized_expression "(iVar8 == iVar13)" ( (binary_expression "iVar8 == iVar13" identifier == identifier) )) (compound_statement "{\n              if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }" { (if_statement "if (pcVar9[1] == ')') {\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }\n              else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }" if (parenthesized_expression "(pcVar9[1] == ')')" ( (binary_expression "pcVar9[1] == ')'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) == (char_literal "')'" ' character ')) )) (compound_statement "{\n                *port = iVar14;\n                (*(code *)puVar18)(csock);\n              }" { (expression_statement "*port = iVar14;" (assignment_expression "*port = iVar14" (pointer_expression "*port" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar18)(csock);" (call_expression "(*(code *)puVar18)(csock)" (parenthesized_expression "(*(code *)puVar18)" ( (pointer_expression "*(code *)puVar18" * (cast_expression "(code *)puVar18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(csock)" ( identifier ))) ;) }) (else_clause "else {\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }" else (compound_statement "{\n                uVar5 = FTPINVPASV;\n                (*(code *)PTR_free_000afd08)();\n              }" { (expression_statement "uVar5 = FTPINVPASV;" (assignment_expression "uVar5 = FTPINVPASV" identifier = identifier) ;) (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (goto_statement "goto LAB_0002ae20;" goto statement_identifier ;) })) })) })) (expression_statement "uVar5 = FTPINVPASV;" (assignment_expression "uVar5 = FTPINVPASV" identifier = identifier) ;) (expression_statement "(*(code *)PTR_free_000afd08)(csock);" (call_expression "(*(code *)PTR_free_000afd08)(csock)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(csock)" ( identifier ))) ;) }) (else_clause "else {\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }" else (compound_statement "{\n        uVar5 = FTPNOPASV;\n        (*(code *)PTR_free_000afd08)(respline);\n      }" { (expression_statement "uVar5 = FTPNOPASV;" (assignment_expression "uVar5 = FTPNOPASV" identifier = identifier) ;) (expression_statement "(*(code *)PTR_free_000afd08)(respline);" (call_expression "(*(code *)PTR_free_000afd08)(respline)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(respline)" ( identifier ))) ;) }))) })) }))) (labeled_statement "LAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (local_1c == *(int *)puVar2) {\n    return uVar5;\n  }" if (parenthesized_expression "(local_1c == *(int *)puVar2)" ( (binary_expression "local_1c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "pcVar19 = ftp_type;" (assignment_expression "pcVar19 = ftp_type" identifier = identifier) ;) (expression_statement "iVar4 = local_1c;" (assignment_expression "iVar4 = local_1c" identifier = identifier) ;) (expression_statement "puVar18 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar18 = PTR___stack_chk_fail_000afbd4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_70 = puVar18 + 0x8c558;" (assignment_expression "puStack_70 = puVar18 + 0x8c558" identifier = (binary_expression "puVar18 + 0x8c558" identifier + number_literal)) ;) (expression_statement "puStack_4c = puVar2;" (assignment_expression "puStack_4c = puVar2" identifier = identifier) ;) (expression_statement "piVar15 = *(int **)(puVar18 + 0x84d64);" (assignment_expression "piVar15 = *(int **)(puVar18 + 0x84d64)" identifier = (pointer_expression "*(int **)(puVar18 + 0x84d64)" * (cast_expression "(int **)(puVar18 + 0x84d64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x84d64)" ( (binary_expression "puVar18 + 0x84d64" identifier + number_literal) ))))) ;) (expression_statement "acStack_58[1] = 0;" (assignment_expression "acStack_58[1] = 0" (subscript_expression "acStack_58[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_54 = *piVar15;" (assignment_expression "iStack_54 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "acStack_58[0] = cVar12;" (assignment_expression "acStack_58[0] = cVar12" (subscript_expression "acStack_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_50 = uVar5;" (assignment_expression "uStack_50 = uVar5" identifier = identifier) ;) (expression_statement "piStack_48 = port;" (assignment_expression "piStack_48 = port" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar19;" (assignment_expression "pcStack_44 = pcVar19" identifier = identifier) ;) (expression_statement "ppcVar6 = (char **)ftp_request((char *)(*(int *)(puVar18 + 0x84594) + -0x15d4),acStack_58);" (assignment_expression "ppcVar6 = (char **)ftp_request((char *)(*(int *)(puVar18 + 0x84594) + -0x15d4),acStack_58)" identifier = (cast_expression "(char **)ftp_request((char *)(*(int *)(puVar18 + 0x84594) + -0x15d4),acStack_58)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request((char *)(*(int *)(puVar18 + 0x84594) + -0x15d4),acStack_58)" identifier (argument_list "((char *)(*(int *)(puVar18 + 0x84594) + -0x15d4),acStack_58)" ( (cast_expression "(char *)(*(int *)(puVar18 + 0x84594) + -0x15d4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar18 + 0x84594) + -0x15d4)" ( (binary_expression "*(int *)(puVar18 + 0x84594) + -0x15d4" (pointer_expression "*(int *)(puVar18 + 0x84594)" * (cast_expression "(int *)(puVar18 + 0x84594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x84594)" ( (binary_expression "puVar18 + 0x84594" identifier + number_literal) )))) + number_literal) ))) , identifier ))))) ;) (expression_statement "iVar8 = (**(code **)(puStack_70 + -0x77c8))(ppcVar6);" (assignment_expression "iVar8 = (**(code **)(puStack_70 + -0x77c8))(ppcVar6)" identifier = (call_expression "(**(code **)(puStack_70 + -0x77c8))(ppcVar6)" (parenthesized_expression "(**(code **)(puStack_70 + -0x77c8))" ( (pointer_expression "**(code **)(puStack_70 + -0x77c8)" * (pointer_expression "*(code **)(puStack_70 + -0x77c8)" * (cast_expression "(code **)(puStack_70 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x77c8)" ( (binary_expression "puStack_70 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar6)" ( identifier )))) ;) (expression_statement "uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(puStack_70 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(puStack_70 + -0x7fc8)" * (cast_expression "(int *)(puStack_70 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_70 + -0x7fc8)" ( (binary_expression "puStack_70 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar11 = ppcVar6;" (assignment_expression "ppcVar11 = ppcVar6" identifier = identifier) ;) (expression_statement "iVar8 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);" (assignment_expression "iVar8 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13)" identifier = (call_expression "fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13)" identifier (argument_list "(iVar4,(char *)ppcVar6,iVar8,in_f12_13)" ( identifier , (cast_expression "(char *)ppcVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar8 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    ppcVar11 = &pcStack_5c;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_5c;\n      if (ppcVar11 == (char **)0x32) {\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }\n    }\n  }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(puStack_70 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }" { (expression_statement "(**(code **)(puStack_70 + -0x7728))(ppcVar6);" (call_expression "(**(code **)(puStack_70 + -0x7728))(ppcVar6)" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar6)" ( identifier ))) ;) (expression_statement "uVar5 = WRITEFAILED;" (assignment_expression "uVar5 = WRITEFAILED" identifier = identifier) ;) }) (else_clause "else {\n    (**(code **)(puStack_70 + -0x7728))();\n    ppcVar11 = &pcStack_5c;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_5c;\n      if (ppcVar11 == (char **)0x32) {\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(puStack_70 + -0x7728))();\n    ppcVar11 = &pcStack_5c;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_5c;\n      if (ppcVar11 == (char **)0x32) {\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }\n    }\n  }" { (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar11 = &pcStack_5c;" (assignment_expression "ppcVar11 = &pcStack_5c" identifier = (pointer_expression "&pcStack_5c" & identifier)) ;) (expression_statement "uVar5 = ftp_response(iVar4,ppcVar11);" (assignment_expression "uVar5 = ftp_response(iVar4,ppcVar11)" identifier = (call_expression "ftp_response(iVar4,ppcVar11)" identifier (argument_list "(iVar4,ppcVar11)" ( identifier , identifier )))) ;) (if_statement "if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_5c;\n      if (ppcVar11 == (char **)0x32) {\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }\n    }" if (parenthesized_expression "(uVar5 == FTPOK)" ( (binary_expression "uVar5 == FTPOK" identifier == identifier) )) (compound_statement "{\n      ppcVar11 = (char **)(int)*pcStack_5c;\n      if (ppcVar11 == (char **)0x32) {\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }\n    }" { (expression_statement "ppcVar11 = (char **)(int)*pcStack_5c;" (assignment_expression "ppcVar11 = (char **)(int)*pcStack_5c" identifier = (cast_expression "(char **)(int)*pcStack_5c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)*pcStack_5c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcStack_5c" * identifier)))) ;) (if_statement "if (ppcVar11 == (char **)0x32) {\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }" if (parenthesized_expression "(ppcVar11 == (char **)0x32)" ( (binary_expression "ppcVar11 == (char **)0x32" identifier == (cast_expression "(char **)0x32" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        uStack_64 = uVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = uStack_64;\n      }" { (expression_statement "uStack_64 = uVar5;" (assignment_expression "uStack_64 = uVar5" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = uStack_64;" (assignment_expression "uVar5 = uStack_64" identifier = identifier) ;) }) (else_clause "else {\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }" else (compound_statement "{\n        (**(code **)(puStack_70 + -0x7728))();\n        uVar5 = FTPUNKNOWNTYPE;\n      }" { (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FTPUNKNOWNTYPE;" (assignment_expression "uVar5 = FTPUNKNOWNTYPE" identifier = identifier) ;) }))) })) }))) (if_statement "if (iStack_54 == *piVar15) {\n    return uVar5;\n  }" if (parenthesized_expression "(iStack_54 == *piVar15)" ( (binary_expression "iStack_54 == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) })) (expression_statement "pcVar19 = *(code **)(puStack_70 + -0x785c);" (assignment_expression "pcVar19 = *(code **)(puStack_70 + -0x785c)" identifier = (pointer_expression "*(code **)(puStack_70 + -0x785c)" * (cast_expression "(code **)(puStack_70 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x785c)" ( (binary_expression "puStack_70 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = ftp_cwd;" (assignment_expression "pcVar20 = ftp_cwd" identifier = identifier) ;) (expression_statement "iVar8 = iStack_54;" (assignment_expression "iVar8 = iStack_54" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_b0 = pcVar19 + 0x8c410;" (assignment_expression "pcStack_b0 = pcVar19 + 0x8c410" identifier = (binary_expression "pcVar19 + 0x8c410" identifier + number_literal)) ;) (expression_statement "piVar16 = *(int **)(pcVar19 + 0x84c1c);" (assignment_expression "piVar16 = *(int **)(pcVar19 + 0x84c1c)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x84c1c)" * (cast_expression "(int **)(pcVar19 + 0x84c1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84c1c)" ( (binary_expression "pcVar19 + 0x84c1c" identifier + number_literal) ))))) ;) (expression_statement "iStack_9c = *piVar16;" (assignment_expression "iStack_9c = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "ppcStack_98 = ppcVar6;" (assignment_expression "ppcStack_98 = ppcVar6" identifier = identifier) ;) (expression_statement "piStack_94 = piVar15;" (assignment_expression "piStack_94 = piVar15" identifier = identifier) ;) (expression_statement "iStack_90 = iVar4;" (assignment_expression "iStack_90 = iVar4" identifier = identifier) ;) (expression_statement "pcStack_8c = pcVar20;" (assignment_expression "pcStack_8c = pcVar20" identifier = identifier) ;) (expression_statement "pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x8444c) + -0x15cc),(char *)ppcVar11);" (assignment_expression "pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x8444c) + -0x15cc),(char *)ppcVar11)" identifier = (call_expression "ftp_request((char *)(*(int *)(pcVar19 + 0x8444c) + -0x15cc),(char *)ppcVar11)" identifier (argument_list "((char *)(*(int *)(pcVar19 + 0x8444c) + -0x15cc),(char *)ppcVar11)" ( (cast_expression "(char *)(*(int *)(pcVar19 + 0x8444c) + -0x15cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x8444c) + -0x15cc)" ( (binary_expression "*(int *)(pcVar19 + 0x8444c) + -0x15cc" (pointer_expression "*(int *)(pcVar19 + 0x8444c)" * (cast_expression "(int *)(pcVar19 + 0x8444c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x8444c)" ( (binary_expression "pcVar19 + 0x8444c" identifier + number_literal) )))) + number_literal) ))) , (cast_expression "(char *)ppcVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_b0 + -0x77c8))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_b0 + -0x77c8))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_b0 + -0x77c8))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_b0 + -0x77c8)" * (cast_expression "(code **)(pcStack_b0 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x77c8)" ( (binary_expression "pcStack_b0 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_b0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_b0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_b0 + -0x7fc8)" ( (binary_expression "pcStack_b0 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar13 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);" (assignment_expression "iVar13 = fd_write(iVar8,pcVar9,iVar4,in_f12_13)" identifier = (call_expression "fd_write(iVar8,pcVar9,iVar4,in_f12_13)" identifier (argument_list "(iVar8,pcVar9,iVar4,in_f12_13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar13 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(pcVar9);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    uVar5 = ftp_response(iVar8,&pcStack_a0);\n    if (uVar5 == FTPOK) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcStack_b0 + -0x7728))(pcVar9);\n    uVar5 = WRITEFAILED;\n  }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))(pcVar9);" (call_expression "(**(code **)(pcStack_b0 + -0x7728))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "uVar5 = WRITEFAILED;" (assignment_expression "uVar5 = WRITEFAILED" identifier = identifier) ;) }) (else_clause "else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    uVar5 = ftp_response(iVar8,&pcStack_a0);\n    if (uVar5 == FTPOK) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_b0 + -0x7728))();\n    uVar5 = ftp_response(iVar8,&pcStack_a0);\n    if (uVar5 == FTPOK) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = ftp_response(iVar8,&pcStack_a0);" (assignment_expression "uVar5 = ftp_response(iVar8,&pcStack_a0)" identifier = (call_expression "ftp_response(iVar8,&pcStack_a0)" identifier (argument_list "(iVar8,&pcStack_a0)" ( identifier , (pointer_expression "&pcStack_a0" & identifier) )))) ;) (if_statement "if (uVar5 == FTPOK) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }\n    }" if (parenthesized_expression "(uVar5 == FTPOK)" ( (binary_expression "uVar5 == FTPOK" identifier == identifier) )) (compound_statement "{\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }\n    }" { (if_statement "if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }" if (parenthesized_expression "(*pcStack_a0 == '5')" ( (binary_expression "*pcStack_a0 == '5'" (pointer_expression "*pcStack_a0" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPNSFOD;\n      }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FTPNSFOD;" (assignment_expression "uVar5 = FTPNSFOD" identifier = identifier) ;) }) (else_clause "else if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }" else (if_statement "if (*pcStack_a0 == '2') {\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }" if (parenthesized_expression "(*pcStack_a0 == '2')" ( (binary_expression "*pcStack_a0 == '2'" (pointer_expression "*pcStack_a0" * identifier) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n        uStack_a4 = uVar5;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = uStack_a4;\n      }" { (expression_statement "uStack_a4 = uVar5;" (assignment_expression "uStack_a4 = uVar5" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = uStack_a4;" (assignment_expression "uVar5 = uStack_a4" identifier = identifier) ;) }) (else_clause "else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }" else (compound_statement "{\n        (**(code **)(pcStack_b0 + -0x7728))();\n        uVar5 = FTPRERR;\n      }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FTPRERR;" (assignment_expression "uVar5 = FTPRERR" identifier = identifier) ;) }))))) })) }))) (if_statement "if (iStack_9c == *piVar16) {\n    return uVar5;\n  }" if (parenthesized_expression "(iStack_9c == *piVar16)" ( (binary_expression "iStack_9c == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) })) (expression_statement "pcVar19 = *(code **)(pcStack_b0 + -0x785c);" (assignment_expression "pcVar19 = *(code **)(pcStack_b0 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_b0 + -0x785c)" * (cast_expression "(code **)(pcStack_b0 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x785c)" ( (binary_expression "pcStack_b0 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = ftp_rest;" (assignment_expression "pcVar20 = ftp_rest" identifier = identifier) ;) (expression_statement "iVar13 = iStack_9c;" (assignment_expression "iVar13 = iStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_f0 = pcVar19 + 0x8c2b4;" (assignment_expression "pcStack_f0 = pcVar19 + 0x8c2b4" identifier = (binary_expression "pcVar19 + 0x8c2b4" identifier + number_literal)) ;) (expression_statement "piVar15 = *(int **)(pcVar19 + 0x84ac0);" (assignment_expression "piVar15 = *(int **)(pcVar19 + 0x84ac0)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x84ac0)" * (cast_expression "(int **)(pcVar19 + 0x84ac0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84ac0)" ( (binary_expression "pcVar19 + 0x84ac0" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = *piVar15;" (assignment_expression "iStack_dc = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "pcStack_d8 = pcVar9;" (assignment_expression "pcStack_d8 = pcVar9" identifier = identifier) ;) (expression_statement "piStack_d4 = piVar16;" (assignment_expression "piStack_d4 = piVar16" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar8;" (assignment_expression "iStack_d0 = iVar8" identifier = identifier) ;) (expression_statement "pcStack_cc = pcVar20;" (assignment_expression "pcStack_cc = pcVar20" identifier = identifier) ;) (expression_statement "pcVar9 = (char *)(**(code **)(pcVar19 + 0x8451c))(iVar4,in_a3);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcVar19 + 0x8451c))(iVar4,in_a3)" identifier = (cast_expression "(char *)(**(code **)(pcVar19 + 0x8451c))(iVar4,in_a3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x8451c))(iVar4,in_a3)" (parenthesized_expression "(**(code **)(pcVar19 + 0x8451c))" ( (pointer_expression "**(code **)(pcVar19 + 0x8451c)" * (pointer_expression "*(code **)(pcVar19 + 0x8451c)" * (cast_expression "(code **)(pcVar19 + 0x8451c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x8451c)" ( (binary_expression "pcVar19 + 0x8451c" identifier + number_literal) ))))) )) (argument_list "(iVar4,in_a3)" ( identifier , identifier ))))) ;) (expression_statement "ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8),pcVar9);" (assignment_expression "ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8),pcVar9)" identifier = (cast_expression "(char **)ftp_request((char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8),pcVar9)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request((char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8),pcVar9)" identifier (argument_list "((char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8),pcVar9)" ( (cast_expression "(char *)(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8)" ( (binary_expression "*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8" (pointer_expression "*(int *)(pcStack_f0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_f0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_f0 + -0x7fc4)" ( (binary_expression "pcStack_f0 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))) , identifier ))))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_f0 + -0x77c8))(ppcVar6);" (assignment_expression "iVar4 = (**(code **)(pcStack_f0 + -0x77c8))(ppcVar6)" identifier = (call_expression "(**(code **)(pcStack_f0 + -0x77c8))(ppcVar6)" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_f0 + -0x77c8)" * (cast_expression "(code **)(pcStack_f0 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x77c8)" ( (binary_expression "pcStack_f0 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar6)" ( identifier )))) ;) (expression_statement "uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_f0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_f0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_f0 + -0x7fc8)" ( (binary_expression "pcStack_f0 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar11 = ppcVar6;" (assignment_expression "ppcVar11 = ppcVar6" identifier = identifier) ;) (expression_statement "iVar4 = fd_write(iVar13,(char *)ppcVar6,iVar4,in_f12_13);" (assignment_expression "iVar4 = fd_write(iVar13,(char *)ppcVar6,iVar4,in_f12_13)" identifier = (call_expression "fd_write(iVar13,(char *)ppcVar6,iVar4,in_f12_13)" identifier (argument_list "(iVar13,(char *)ppcVar6,iVar4,in_f12_13)" ( identifier , (cast_expression "(char *)ppcVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar4 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    ppcVar11 = &pcStack_e0;\n    uVar5 = ftp_response(iVar13,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_e0;\n      if (ppcVar11 == (char **)&DAT_00000033) {\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }\n    }\n  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcStack_f0 + -0x7728))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }" { (expression_statement "(**(code **)(pcStack_f0 + -0x7728))(ppcVar6);" (call_expression "(**(code **)(pcStack_f0 + -0x7728))(ppcVar6)" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar6)" ( identifier ))) ;) (expression_statement "uVar5 = WRITEFAILED;" (assignment_expression "uVar5 = WRITEFAILED" identifier = identifier) ;) }) (else_clause "else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    ppcVar11 = &pcStack_e0;\n    uVar5 = ftp_response(iVar13,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_e0;\n      if (ppcVar11 == (char **)&DAT_00000033) {\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_f0 + -0x7728))();\n    ppcVar11 = &pcStack_e0;\n    uVar5 = ftp_response(iVar13,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_e0;\n      if (ppcVar11 == (char **)&DAT_00000033) {\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar11 = &pcStack_e0;" (assignment_expression "ppcVar11 = &pcStack_e0" identifier = (pointer_expression "&pcStack_e0" & identifier)) ;) (expression_statement "uVar5 = ftp_response(iVar13,ppcVar11);" (assignment_expression "uVar5 = ftp_response(iVar13,ppcVar11)" identifier = (call_expression "ftp_response(iVar13,ppcVar11)" identifier (argument_list "(iVar13,ppcVar11)" ( identifier , identifier )))) ;) (if_statement "if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)(int)*pcStack_e0;\n      if (ppcVar11 == (char **)&DAT_00000033) {\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }\n    }" if (parenthesized_expression "(uVar5 == FTPOK)" ( (binary_expression "uVar5 == FTPOK" identifier == identifier) )) (compound_statement "{\n      ppcVar11 = (char **)(int)*pcStack_e0;\n      if (ppcVar11 == (char **)&DAT_00000033) {\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }\n    }" { (expression_statement "ppcVar11 = (char **)(int)*pcStack_e0;" (assignment_expression "ppcVar11 = (char **)(int)*pcStack_e0" identifier = (cast_expression "(char **)(int)*pcStack_e0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)*pcStack_e0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcStack_e0" * identifier)))) ;) (if_statement "if (ppcVar11 == (char **)&DAT_00000033) {\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }" if (parenthesized_expression "(ppcVar11 == (char **)&DAT_00000033)" ( (binary_expression "ppcVar11 == (char **)&DAT_00000033" identifier == (cast_expression "(char **)&DAT_00000033" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000033" & identifier))) )) (compound_statement "{\n        uStack_e4 = uVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = uStack_e4;\n      }" { (expression_statement "uStack_e4 = uVar5;" (assignment_expression "uStack_e4 = uVar5" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = uStack_e4;" (assignment_expression "uVar5 = uStack_e4" identifier = identifier) ;) }) (else_clause "else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }" else (compound_statement "{\n        (**(code **)(pcStack_f0 + -0x7728))();\n        uVar5 = FTPRESTFAIL;\n      }" { (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FTPRESTFAIL;" (assignment_expression "uVar5 = FTPRESTFAIL" identifier = identifier) ;) }))) })) }))) (if_statement "if (iStack_dc == *piVar15) {\n    return uVar5;\n  }" if (parenthesized_expression "(iStack_dc == *piVar15)" ( (binary_expression "iStack_dc == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) })) (expression_statement "pcVar19 = *(code **)(pcStack_f0 + -0x785c);" (assignment_expression "pcVar19 = *(code **)(pcStack_f0 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_f0 + -0x785c)" * (cast_expression "(code **)(pcStack_f0 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x785c)" ( (binary_expression "pcStack_f0 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = ftp_retr;" (assignment_expression "pcVar20 = ftp_retr" identifier = identifier) ;) (expression_statement "iVar4 = iStack_dc;" (assignment_expression "iVar4 = iStack_dc" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar16 = *(int **)(pcVar19 + 0x8496c);" (assignment_expression "piVar16 = *(int **)(pcVar19 + 0x8496c)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x8496c)" * (cast_expression "(int **)(pcVar19 + 0x8496c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x8496c)" ( (binary_expression "pcVar19 + 0x8496c" identifier + number_literal) ))))) ;) (expression_statement "iStack_11c = *piVar16;" (assignment_expression "iStack_11c = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "ppcStack_118 = ppcVar6;" (assignment_expression "ppcStack_118 = ppcVar6" identifier = identifier) ;) (expression_statement "piStack_114 = piVar15;" (assignment_expression "piStack_114 = piVar15" identifier = identifier) ;) (expression_statement "iStack_110 = iVar13;" (assignment_expression "iStack_110 = iVar13" identifier = identifier) ;) (expression_statement "pcStack_10c = pcVar20;" (assignment_expression "pcStack_10c = pcVar20" identifier = identifier) ;) (expression_statement "ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0),(char *)ppcVar11);" (assignment_expression "ppcVar6 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0),(char *)ppcVar11)" identifier = (cast_expression "(char **)ftp_request((char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0),(char *)ppcVar11)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request((char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0),(char *)ppcVar11)" identifier (argument_list "((char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0),(char *)ppcVar11)" ( (cast_expression "(char *)(*(int *)(pcVar19 + 0x8419c) + -0x15c0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x8419c) + -0x15c0)" ( (binary_expression "*(int *)(pcVar19 + 0x8419c) + -0x15c0" (pointer_expression "*(int *)(pcVar19 + 0x8419c)" * (cast_expression "(int *)(pcVar19 + 0x8419c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x8419c)" ( (binary_expression "pcVar19 + 0x8419c" identifier + number_literal) )))) + number_literal) ))) , (cast_expression "(char *)ppcVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "iVar8 = (**(code **)(pcVar19 + 0x84998))(ppcVar6);" (assignment_expression "iVar8 = (**(code **)(pcVar19 + 0x84998))(ppcVar6)" identifier = (call_expression "(**(code **)(pcVar19 + 0x84998))(ppcVar6)" (parenthesized_expression "(**(code **)(pcVar19 + 0x84998))" ( (pointer_expression "**(code **)(pcVar19 + 0x84998)" * (pointer_expression "*(code **)(pcVar19 + 0x84998)" * (cast_expression "(code **)(pcVar19 + 0x84998)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84998)" ( (binary_expression "pcVar19 + 0x84998" identifier + number_literal) ))))) )) (argument_list "(ppcVar6)" ( identifier )))) ;) (expression_statement "uVar21 = *(undefined8 *)(*(int *)(pcVar19 + 0x84198) + 0x40b8);" (assignment_expression "uVar21 = *(undefined8 *)(*(int *)(pcVar19 + 0x84198) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcVar19 + 0x84198) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcVar19 + 0x84198) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x84198) + 0x40b8)" ( (binary_expression "*(int *)(pcVar19 + 0x84198) + 0x40b8" (pointer_expression "*(int *)(pcVar19 + 0x84198)" * (cast_expression "(int *)(pcVar19 + 0x84198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x84198)" ( (binary_expression "pcVar19 + 0x84198" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar11 = ppcVar6;" (assignment_expression "ppcVar11 = ppcVar6" identifier = identifier) ;) (expression_statement "iVar13 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13);" (assignment_expression "iVar13 = fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13)" identifier = (call_expression "fd_write(iVar4,(char *)ppcVar6,iVar8,in_f12_13)" identifier (argument_list "(iVar4,(char *)ppcVar6,iVar8,in_f12_13)" ( identifier , (cast_expression "(char *)ppcVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar13 < 0) {\n    (**(code **)(pcVar19 + 0x84a38))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }\n  else {\n    (**(code **)(pcVar19 + 0x84a38))();\n    ppcVar11 = &pcStack_120;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcVar19 + 0x84a38))(ppcVar6);\n    uVar5 = WRITEFAILED;\n  }" { (expression_statement "(**(code **)(pcVar19 + 0x84a38))(ppcVar6);" (call_expression "(**(code **)(pcVar19 + 0x84a38))(ppcVar6)" (parenthesized_expression "(**(code **)(pcVar19 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar19 + 0x84a38)" * (pointer_expression "*(code **)(pcVar19 + 0x84a38)" * (cast_expression "(code **)(pcVar19 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84a38)" ( (binary_expression "pcVar19 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "(ppcVar6)" ( identifier ))) ;) (expression_statement "uVar5 = WRITEFAILED;" (assignment_expression "uVar5 = WRITEFAILED" identifier = identifier) ;) }) (else_clause "else {\n    (**(code **)(pcVar19 + 0x84a38))();\n    ppcVar11 = &pcStack_120;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcVar19 + 0x84a38))();\n    ppcVar11 = &pcStack_120;\n    uVar5 = ftp_response(iVar4,ppcVar11);\n    if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcVar19 + 0x84a38))();" (call_expression "(**(code **)(pcVar19 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar19 + 0x84a38)" * (pointer_expression "*(code **)(pcVar19 + 0x84a38)" * (cast_expression "(code **)(pcVar19 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84a38)" ( (binary_expression "pcVar19 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar11 = &pcStack_120;" (assignment_expression "ppcVar11 = &pcStack_120" identifier = (pointer_expression "&pcStack_120" & identifier)) ;) (expression_statement "uVar5 = ftp_response(iVar4,ppcVar11);" (assignment_expression "uVar5 = ftp_response(iVar4,ppcVar11)" identifier = (call_expression "ftp_response(iVar4,ppcVar11)" identifier (argument_list "(iVar4,ppcVar11)" ( identifier , identifier )))) ;) (if_statement "if (uVar5 == FTPOK) {\n      ppcVar11 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }\n    }" if (parenthesized_expression "(uVar5 == FTPOK)" ( (binary_expression "uVar5 == FTPOK" identifier == identifier) )) (compound_statement "{\n      ppcVar11 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }\n    }" { (expression_statement "ppcVar11 = (char **)0x31;" (assignment_expression "ppcVar11 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*pcStack_120 == '5') {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }" if (parenthesized_expression "(*pcStack_120 == '5')" ( (binary_expression "*pcStack_120 == '5'" (pointer_expression "*pcStack_120" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPNSFOD;\n      }" { (expression_statement "(**(code **)(pcVar19 + 0x84a38))();" (call_expression "(**(code **)(pcVar19 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar19 + 0x84a38)" * (pointer_expression "*(code **)(pcVar19 + 0x84a38)" * (cast_expression "(code **)(pcVar19 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84a38)" ( (binary_expression "pcVar19 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FTPNSFOD;" (assignment_expression "uVar5 = FTPNSFOD" identifier = identifier) ;) }) (else_clause "else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }" else (if_statement "if (*pcStack_120 == '1') {\n        (**(code **)(pcVar19 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }" if (parenthesized_expression "(*pcStack_120 == '1')" ( (binary_expression "*pcStack_120 == '1'" (pointer_expression "*pcStack_120" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcVar19 + 0x84a38))();\n      }" { (expression_statement "(**(code **)(pcVar19 + 0x84a38))();" (call_expression "(**(code **)(pcVar19 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar19 + 0x84a38)" * (pointer_expression "*(code **)(pcVar19 + 0x84a38)" * (cast_expression "(code **)(pcVar19 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84a38)" ( (binary_expression "pcVar19 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }" else (compound_statement "{\n        (**(code **)(pcVar19 + 0x84a38))();\n        uVar5 = FTPRERR;\n      }" { (expression_statement "(**(code **)(pcVar19 + 0x84a38))();" (call_expression "(**(code **)(pcVar19 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar19 + 0x84a38)" * (pointer_expression "*(code **)(pcVar19 + 0x84a38)" * (cast_expression "(code **)(pcVar19 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84a38)" ( (binary_expression "pcVar19 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FTPRERR;" (assignment_expression "uVar5 = FTPRERR" identifier = identifier) ;) }))))) })) }))) (if_statement "if (iStack_11c == *piVar16) {\n    return uVar5;\n  }" if (parenthesized_expression "(iStack_11c == *piVar16)" ( (binary_expression "iStack_11c == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) })) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x84904);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x84904)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x84904)" * (cast_expression "(code **)(pcVar19 + 0x84904)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84904)" ( (binary_expression "pcVar19 + 0x84904" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = iStack_11c;" (assignment_expression "iVar13 = iStack_11c" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_198 = pcVar19 + 0x8c004;" (assignment_expression "pcStack_198 = pcVar19 + 0x8c004" identifier = (binary_expression "pcVar19 + 0x8c004" identifier + number_literal)) ;) (expression_statement "puStack_188 = *(undefined4 **)(pcVar19 + 0x84810);" (assignment_expression "puStack_188 = *(undefined4 **)(pcVar19 + 0x84810)" identifier = (pointer_expression "*(undefined4 **)(pcVar19 + 0x84810)" * (cast_expression "(undefined4 **)(pcVar19 + 0x84810)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84810)" ( (binary_expression "pcVar19 + 0x84810" identifier + number_literal) ))))) ;) (expression_statement "pbStack_138 = (byte *)((ulonglong)uVar21 >> 0x20);" (assignment_expression "pbStack_138 = (byte *)((ulonglong)uVar21 >> 0x20)" identifier = (cast_expression "(byte *)((ulonglong)uVar21 >> 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar21 >> 0x20)" ( (binary_expression "(ulonglong)uVar21 >> 0x20" (cast_expression "(ulonglong)uVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pbStack_184 = pbStack_138;" (assignment_expression "pbStack_184 = pbStack_138" identifier = identifier) ;) (expression_statement "pcStack_17c = (char *)*puStack_188;" (assignment_expression "pcStack_17c = (char *)*puStack_188" identifier = (cast_expression "(char *)*puStack_188" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_188" * identifier))) ;) (expression_statement "*pbStack_138 = 0;" (assignment_expression "*pbStack_138 = 0" (pointer_expression "*pbStack_138" * identifier) = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "ppcStack_178 = ppcVar6;" (assignment_expression "ppcStack_178 = ppcVar6" identifier = identifier) ;) (expression_statement "piStack_174 = piVar16;" (assignment_expression "piStack_174 = piVar16" identifier = identifier) ;) (expression_statement "iStack_170 = iVar4;" (assignment_expression "iStack_170 = iVar4" identifier = identifier) ;) (expression_statement "pcStack_16c = (char *)csock;" (assignment_expression "pcStack_16c = (char *)csock" identifier = (cast_expression "(char *)csock" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar8 == 0) {\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b0);\n  }\n  else if (*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b0);\n  }" { (expression_statement "pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b0);" (assignment_expression "pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b0)" identifier = (cast_expression "(char *)(*(int *)(pcVar19 + 0x84040) + -0x15b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x84040) + -0x15b0)" ( (binary_expression "*(int *)(pcVar19 + 0x84040) + -0x15b0" (pointer_expression "*(int *)(pcVar19 + 0x84040)" * (cast_expression "(int *)(pcVar19 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x84040)" ( (binary_expression "pcVar19 + 0x84040" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else if (*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  }" else (if_statement "if (*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b) == '\0')" ( (binary_expression "*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b) == '\0'" (pointer_expression "*(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b)" * (cast_expression "(char *)(*(int *)(pcVar19 + 0x8405c) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x8405c) + 0x16b)" ( (binary_expression "*(int *)(pcVar19 + 0x8405c) + 0x16b" (pointer_expression "*(int *)(pcVar19 + 0x8405c)" * (cast_expression "(int *)(pcVar19 + 0x8405c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x8405c)" ( (binary_expression "pcVar19 + 0x8405c" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar14 = 1;\n    pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8);\n  }" { (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (expression_statement "pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8);" (assignment_expression "pcVar9 = (char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8)" identifier = (cast_expression "(char *)(*(int *)(pcVar19 + 0x84040) + -0x15b8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x84040) + -0x15b8)" ( (binary_expression "*(int *)(pcVar19 + 0x84040) + -0x15b8" (pointer_expression "*(int *)(pcVar19 + 0x84040)" * (cast_expression "(int *)(pcVar19 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x84040)" ( (binary_expression "pcVar19 + 0x84040" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n    iVar14 = 1;\n    debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  }" else (compound_statement "{\n    iVar14 = 1;\n    debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);\n  }" { (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (expression_statement "debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8));" (call_expression "debug_logprintf((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8))" identifier (argument_list "((char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8))" ( (cast_expression "(char *)(*(int *)(pcVar19 + 0x84040) + -0x15a8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x84040) + -0x15a8)" ( (binary_expression "*(int *)(pcVar19 + 0x84040) + -0x15a8" (pointer_expression "*(int *)(pcVar19 + 0x84040)" * (cast_expression "(int *)(pcVar19 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x84040)" ( (binary_expression "pcVar19 + 0x84040" identifier + number_literal) )))) + number_literal) ))) ))) ;) (expression_statement "pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);" (assignment_expression "pcVar9 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8)" identifier = (cast_expression "(char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" * (cast_expression "(int *)(pcStack_198 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc4)" ( (binary_expression "pcStack_198 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) }))))) (expression_statement "iVar4 = *(int *)(pcStack_198 + -0x7c70);" (assignment_expression "iVar4 = *(int *)(pcStack_198 + -0x7c70)" identifier = (pointer_expression "*(int *)(pcStack_198 + -0x7c70)" * (cast_expression "(int *)(pcStack_198 + -0x7c70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7c70)" ( (binary_expression "pcStack_198 + -0x7c70" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);" (assignment_expression "uVar21 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc8)" * (cast_expression "(int *)(pcStack_198 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc8)" ( (binary_expression "pcStack_198 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined4 *)(pcStack_198 + -0x7d38);" (assignment_expression "uVar17 = *(undefined4 *)(pcStack_198 + -0x7d38)" identifier = (pointer_expression "*(undefined4 *)(pcStack_198 + -0x7d38)" * (cast_expression "(undefined4 *)(pcStack_198 + -0x7d38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7d38)" ( (binary_expression "pcStack_198 + -0x7d38" identifier + number_literal) ))))) ;) (expression_statement "pcVar3 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8);" (assignment_expression "pcVar3 = (char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8)" identifier = (cast_expression "(char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fc4) + -0x15b8)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" * (cast_expression "(int *)(pcStack_198 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc4)" ( (binary_expression "pcStack_198 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11);\n      bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7);\n      ppcVar6 = ppcVar7;\n      uStack_1a0 = uVar21;\n      iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);\n        uVar5 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar6 = &pcStack_180;\n      uVar5 = ftp_response(iVar13,&pcStack_180);\n      pcVar9 = pcVar3;\n      if (uVar5 != FTPOK) break;\n      ppcVar6 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar14 = 0;\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }\n      uStack_18c = uVar5;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      uVar5 = uStack_18c;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)0x1);" do (compound_statement "{\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11);\n      bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7);\n      ppcVar6 = ppcVar7;\n      uStack_1a0 = uVar21;\n      iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);\n        uVar5 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar6 = &pcStack_180;\n      uVar5 = ftp_response(iVar13,&pcStack_180);\n      pcVar9 = pcVar3;\n      if (uVar5 != FTPOK) break;\n      ppcVar6 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar14 = 0;\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }\n      uStack_18c = uVar5;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      uVar5 = uStack_18c;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }\n      break;\n    }\n    iVar14 = 1;\n  }" { (while_statement "while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11);\n      bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7);\n      ppcVar6 = ppcVar7;\n      uStack_1a0 = uVar21;\n      iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);\n        uVar5 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar6 = &pcStack_180;\n      uVar5 = ftp_response(iVar13,&pcStack_180);\n      pcVar9 = pcVar3;\n      if (uVar5 != FTPOK) break;\n      ppcVar6 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar14 = 0;\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }\n      uStack_18c = uVar5;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      uVar5 = uStack_18c;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)) goto LAB_0002b57c;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11);\n      bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7);\n      ppcVar6 = ppcVar7;\n      uStack_1a0 = uVar21;\n      iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);\n        uVar5 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar6 = &pcStack_180;\n      uVar5 = ftp_response(iVar13,&pcStack_180);\n      pcVar9 = pcVar3;\n      if (uVar5 != FTPOK) break;\n      ppcVar6 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar14 = 0;\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }\n      uStack_18c = uVar5;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      uVar5 = uStack_18c;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)) goto LAB_0002b57c;\n    }" { (expression_statement "ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11);" (assignment_expression "ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar11)" identifier = (cast_expression "(char **)ftp_request(pcVar9,(char *)ppcVar11)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request(pcVar9,(char *)ppcVar11)" identifier (argument_list "(pcVar9,(char *)ppcVar11)" ( identifier , (cast_expression "(char *)ppcVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7);" (assignment_expression "bufsize = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_198 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_198 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_198 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_198 + -0x77c8)" * (cast_expression "(code **)(pcStack_198 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x77c8)" ( (binary_expression "pcStack_198 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))))) ;) (expression_statement "ppcVar6 = ppcVar7;" (assignment_expression "ppcVar6 = ppcVar7" identifier = identifier) ;) (expression_statement "uStack_1a0 = uVar21;" (assignment_expression "uStack_1a0 = uVar21" identifier = identifier) ;) (expression_statement "iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13);" (assignment_expression "iVar8 = fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13)" identifier = (call_expression "fd_write(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13)" identifier (argument_list "(iVar13,(char *)ppcVar7,(int)bufsize,in_f12_13)" ( identifier , (cast_expression "(char *)ppcVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)bufsize" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (if_statement "if (iVar8 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);\n        uVar5 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar7);\n        uVar5 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }" { (expression_statement "(**(code **)(pcStack_198 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(pcStack_198 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_198 + -0x7728)" * (pointer_expression "*(code **)(pcStack_198 + -0x7728)" * (cast_expression "(code **)(pcStack_198 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x7728)" ( (binary_expression "pcStack_198 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))) ;) (expression_statement "uVar5 = WRITEFAILED;" (assignment_expression "uVar5 = WRITEFAILED" identifier = identifier) ;) (goto_statement "goto LAB_0002b57c;" goto statement_identifier ;) })) (expression_statement "ppcVar7 = (char **)(iVar14 + 1);" (assignment_expression "ppcVar7 = (char **)(iVar14 + 1)" identifier = (cast_expression "(char **)(iVar14 + 1)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 1)" ( (binary_expression "iVar14 + 1" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_198 + -0x7728))();" (call_expression "(**(code **)(pcStack_198 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_198 + -0x7728)" * (pointer_expression "*(code **)(pcStack_198 + -0x7728)" * (cast_expression "(code **)(pcStack_198 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x7728)" ( (binary_expression "pcStack_198 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar6 = &pcStack_180;" (assignment_expression "ppcVar6 = &pcStack_180" identifier = (pointer_expression "&pcStack_180" & identifier)) ;) (expression_statement "uVar5 = ftp_response(iVar13,&pcStack_180);" (assignment_expression "uVar5 = ftp_response(iVar13,&pcStack_180)" identifier = (call_expression "ftp_response(iVar13,&pcStack_180)" identifier (argument_list "(iVar13,&pcStack_180)" ( identifier , (pointer_expression "&pcStack_180" & identifier) )))) ;) (expression_statement "pcVar9 = pcVar3;" (assignment_expression "pcVar9 = pcVar3" identifier = identifier) ;) (if_statement "if (uVar5 != FTPOK) break;" if (parenthesized_expression "(uVar5 != FTPOK)" ( (binary_expression "uVar5 != FTPOK" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "ppcVar6 = (char **)0x31;" (assignment_expression "ppcVar6 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*pcStack_180 == '5') {\n        iVar14 = 0;\n        uVar5 = FTPNSFOD;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }" if (parenthesized_expression "(*pcStack_180 == '5')" ( (binary_expression "*pcStack_180 == '5'" (pointer_expression "*pcStack_180" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar14 = 0;\n        uVar5 = FTPNSFOD;\n      }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = FTPNSFOD;" (assignment_expression "uVar5 = FTPNSFOD" identifier = identifier) ;) }) (else_clause "else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }" else (if_statement "if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }" if (parenthesized_expression "(*pcStack_180 == '1')" ( (binary_expression "*pcStack_180 == '1'" (pointer_expression "*pcStack_180" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        *pbStack_184 = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }" { (expression_statement "*pbStack_184 = (byte)iVar14 ^ 1;" (assignment_expression "*pbStack_184 = (byte)iVar14 ^ 1" (pointer_expression "*pbStack_184" * identifier) = (binary_expression "(byte)iVar14 ^ 1" (cast_expression "(byte)iVar14" ( (type_descriptor "byte" type_identifier) ) identifier) ^ number_literal)) ;) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }" else (compound_statement "{\n        iVar14 = 0;\n        uVar5 = FTPRERR;\n      }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = FTPRERR;" (assignment_expression "uVar5 = FTPRERR" identifier = identifier) ;) }))))) (expression_statement "uStack_18c = uVar5;" (assignment_expression "uStack_18c = uVar5" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_198 + -0x7728))();" (call_expression "(**(code **)(pcStack_198 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_198 + -0x7728)" * (pointer_expression "*(code **)(pcStack_198 + -0x7728)" * (cast_expression "(code **)(pcStack_198 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x7728)" ( (binary_expression "pcStack_198 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_180 = (char *)0x0;" (assignment_expression "pcStack_180 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = uStack_18c;" (assignment_expression "uVar5 = uStack_18c" identifier = identifier) ;) (if_statement "if (in_a3 != 0) goto LAB_0002b570;" if (parenthesized_expression "(in_a3 != 0)" ( (binary_expression "in_a3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002b570;" goto statement_identifier ;)) (if_statement "if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)) goto LAB_0002b57c;" if (parenthesized_expression "((ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))" ( (binary_expression "(ppcVar7 != (char **)0x1) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)" (parenthesized_expression "(ppcVar7 != (char **)0x1)" ( (binary_expression "ppcVar7 != (char **)0x1" identifier != (cast_expression "(char **)0x1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(bVar1 = iVar14 != 0, iVar14 = 1, bVar1)" ( (comma_expression "bVar1 = iVar14 != 0, iVar14 = 1, bVar1" (assignment_expression "bVar1 = iVar14 != 0" identifier = (binary_expression "iVar14 != 0" identifier != number_literal)) , (comma_expression "iVar14 = 1, bVar1" (assignment_expression "iVar14 = 1" identifier = number_literal) , identifier)) ))) )) (goto_statement "goto LAB_0002b57c;" goto statement_identifier ;)) })) (if_statement "if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }\n      break;\n    }" if (parenthesized_expression "(in_a3 != 0)" ( (binary_expression "in_a3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }\n      break;\n    }" { (labeled_statement "LAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }" statement_identifier : (if_statement "if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }" if (parenthesized_expression "((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))" ( (binary_expression "(ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')" (parenthesized_expression "(ppcVar7 == (char **)0x1)" ( (binary_expression "ppcVar7 == (char **)0x1" identifier == (cast_expression "(char **)0x1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) && (parenthesized_expression "(*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')" ( (binary_expression "*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'" (pointer_expression "*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" * (cast_expression "(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fa8) + 0x16b" (pointer_expression "*(int *)(pcStack_198 + -0x7fa8)" * (cast_expression "(int *)(pcStack_198 + -0x7fa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fa8)" ( (binary_expression "pcStack_198 + -0x7fa8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        uStack_18c = uVar5;\n        debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));\n        uVar5 = uStack_18c;\n      }" { (expression_statement "uStack_18c = uVar5;" (assignment_expression "uStack_18c = uVar5" identifier = identifier) ;) (expression_statement "debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590));" (call_expression "debug_logprintf((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590))" identifier (argument_list "((char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590))" ( (cast_expression "(char *)(*(int *)(pcStack_198 + -0x7fc4) + -0x1590)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fc4) + -0x1590)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x1590" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" * (cast_expression "(int *)(pcStack_198 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc4)" ( (binary_expression "pcStack_198 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))) ))) ;) (expression_statement "uVar5 = uStack_18c;" (assignment_expression "uVar5 = uStack_18c" identifier = identifier) ;) }))) (break_statement "break;" break ;) })) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "(ppcVar7 == (char **)0x1)" ( (binary_expression "ppcVar7 == (char **)0x1" identifier == (cast_expression "(char **)0x1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (labeled_statement "LAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (pcStack_17c == (char *)*puStack_188) {\n    return uVar5;\n  }" if (parenthesized_expression "(pcStack_17c == (char *)*puStack_188)" ( (binary_expression "pcStack_17c == (char *)*puStack_188" identifier == (cast_expression "(char *)*puStack_188" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_188" * identifier))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "pcVar19 = *(code **)(pcStack_198 + -0x785c);" (assignment_expression "pcVar19 = *(code **)(pcStack_198 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_198 + -0x785c)" * (cast_expression "(code **)(pcStack_198 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x785c)" ( (binary_expression "pcStack_198 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = ftp_syst;" (assignment_expression "pcVar20 = ftp_syst" identifier = identifier) ;) (expression_statement "pcVar9 = pcStack_17c;" (assignment_expression "pcVar9 = pcStack_17c" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_1e0 = pcVar19 + 0x8bd8c;" (assignment_expression "pcStack_1e0 = pcVar19 + 0x8bd8c" identifier = (binary_expression "pcVar19 + 0x8bd8c" identifier + number_literal)) ;) (expression_statement "piVar15 = *(int **)(pcVar19 + 0x84598);" (assignment_expression "piVar15 = *(int **)(pcVar19 + 0x84598)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x84598)" * (cast_expression "(int **)(pcVar19 + 0x84598)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84598)" ( (binary_expression "pcVar19 + 0x84598" identifier + number_literal) ))))) ;) (expression_statement "iStack_1d4 = *piVar15;" (assignment_expression "iStack_1d4 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "ppcStack_1d0 = ppcVar7;" (assignment_expression "ppcStack_1d0 = ppcVar7" identifier = identifier) ;) (expression_statement "iStack_1cc = iVar14;" (assignment_expression "iStack_1cc = iVar14" identifier = identifier) ;) (expression_statement "iStack_1c8 = iVar13;" (assignment_expression "iStack_1c8 = iVar13" identifier = identifier) ;) (expression_statement "iStack_1c4 = iVar4 + -0x6ee0;" (assignment_expression "iStack_1c4 = iVar4 + -0x6ee0" identifier = (binary_expression "iVar4 + -0x6ee0" identifier + number_literal)) ;) (expression_statement "pcStack_1c0 = pcVar3;" (assignment_expression "pcStack_1c0 = pcVar3" identifier = identifier) ;) (expression_statement "ppcStack_1bc = ppcVar11;" (assignment_expression "ppcStack_1bc = ppcVar11" identifier = identifier) ;) (expression_statement "uStack_1b8 = uVar17;" (assignment_expression "uStack_1b8 = uVar17" identifier = identifier) ;) (expression_statement "pcStack_1b4 = pcVar20;" (assignment_expression "pcStack_1b4 = pcVar20" identifier = identifier) ;) (expression_statement "ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c),(char *)0x0);" (assignment_expression "ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c),(char *)0x0)" identifier = (cast_expression "(char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c),(char *)0x0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request((char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c),(char *)0x0)" identifier (argument_list "((char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c),(char *)0x0)" ( (cast_expression "(char *)(*(int *)(pcVar19 + 0x83dc8) + -0x157c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x83dc8) + -0x157c)" ( (binary_expression "*(int *)(pcVar19 + 0x83dc8) + -0x157c" (pointer_expression "*(int *)(pcVar19 + 0x83dc8)" * (cast_expression "(int *)(pcVar19 + 0x83dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x83dc8)" ( (binary_expression "pcVar19 + 0x83dc8" identifier + number_literal) )))) + number_literal) ))) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar7);" (assignment_expression "iVar4 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar7)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x77c8)" * (cast_expression "(code **)(pcStack_1e0 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x77c8)" ( (binary_expression "pcStack_1e0 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier )))) ;) (expression_statement "uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc8)" ( (binary_expression "pcStack_1e0 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar11 = ppcVar7;" (assignment_expression "ppcVar11 = ppcVar7" identifier = identifier) ;) (expression_statement "iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13);" (assignment_expression "iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13)" identifier = (call_expression "fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13)" identifier (argument_list "((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13)" ( (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char *)ppcVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar11 = &pcStack_1d8;\n    uVar5 = ftp_response((int)pcVar9,ppcVar11);\n    pcVar3 = pcStack_1d8;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_1d8 == '5') {\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar7);\n  }" { (expression_statement "uVar5 = WRITEFAILED;" (assignment_expression "uVar5 = WRITEFAILED" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar11 = &pcStack_1d8;\n    uVar5 = ftp_response((int)pcVar9,ppcVar11);\n    pcVar3 = pcStack_1d8;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_1d8 == '5') {\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar11 = &pcStack_1d8;\n    uVar5 = ftp_response((int)pcVar9,ppcVar11);\n    pcVar3 = pcStack_1d8;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_1d8 == '5') {\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))();" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar11 = &pcStack_1d8;" (assignment_expression "ppcVar11 = &pcStack_1d8" identifier = (pointer_expression "&pcStack_1d8" & identifier)) ;) (expression_statement "uVar5 = ftp_response((int)pcVar9,ppcVar11);" (assignment_expression "uVar5 = ftp_response((int)pcVar9,ppcVar11)" identifier = (call_expression "ftp_response((int)pcVar9,ppcVar11)" identifier (argument_list "((int)pcVar9,ppcVar11)" ( (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "pcVar3 = pcStack_1d8;" (assignment_expression "pcVar3 = pcStack_1d8" identifier = identifier) ;) (if_statement "if (uVar5 == FTPOK) {\n      if (*pcStack_1d8 == '5') {\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }" if (parenthesized_expression "(uVar5 == FTPOK)" ( (binary_expression "uVar5 == FTPOK" identifier == identifier) )) (compound_statement "{\n      if (*pcStack_1d8 == '5') {\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }" { (if_statement "if (*pcStack_1d8 == '5') {\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" if (parenthesized_expression "(*pcStack_1d8 == '5')" ( (binary_expression "*pcStack_1d8 == '5'" (pointer_expression "*pcStack_1d8" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        uVar5 = FTPSRVERR;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar9 = pcStack_1d8;\n      }" { (expression_statement "uVar5 = FTPSRVERR;" (assignment_expression "uVar5 = FTPSRVERR" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_1d8)" ( identifier ))) ;) (expression_statement "pcVar9 = pcStack_1d8;" (assignment_expression "pcVar9 = pcStack_1d8" identifier = identifier) ;) }) (else_clause "else {\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" else (compound_statement "{\n        iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);\n        ppcVar11 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" { (expression_statement "iVar4 = *(int *)(pcStack_1e0 + -0x7fc8);" (assignment_expression "iVar4 = *(int *)(pcStack_1e0 + -0x7fc8)" identifier = (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc8)" ( (binary_expression "pcStack_1e0 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);" (assignment_expression "uVar17 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x794c)" * (cast_expression "(code **)(pcStack_1e0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x794c)" ( (binary_expression "pcStack_1e0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "(pcStack_1d8)" ( identifier )))) ;) (expression_statement "(**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48);" (call_expression "(**(code **)(pcStack_1e0 + -0x7888))(pcVar3,iVar4 + 0x4a48)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7888)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7888)" * (cast_expression "(code **)(pcStack_1e0 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7888)" ( (binary_expression "pcStack_1e0 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcVar3,iVar4 + 0x4a48)" ( identifier , (binary_expression "iVar4 + 0x4a48" identifier + number_literal) ))) ;) (expression_statement "ppcVar11 = (char **)(iVar4 + 0x4a48);" (assignment_expression "ppcVar11 = (char **)(iVar4 + 0x4a48)" identifier = (cast_expression "(char **)(iVar4 + 0x4a48)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x4a48)" ( (binary_expression "iVar4 + 0x4a48" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0)" identifier = (cast_expression "(char *)(**(code **)(pcStack_1e0 + -0x7888))(0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_1e0 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7888)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7888)" * (cast_expression "(code **)(pcStack_1e0 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7888)" ( (binary_expression "pcStack_1e0 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "*bufsize = 2;" (assignment_expression "*bufsize = 2" (pointer_expression "*bufsize" * identifier) = number_literal) ;) (if_statement "if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }\n        else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;\n        }" { (labeled_statement "LAB_0002b8d8:\n          *ppcVar6 = (char *)0x5;" statement_identifier : (expression_statement "*ppcVar6 = (char *)0x5;" (assignment_expression "*ppcVar6 = (char *)0x5" (pointer_expression "*ppcVar6" * identifier) = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }" else (compound_statement "{\n          ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }\n        }" { (expression_statement "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);" (assignment_expression "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n            *ppcVar6 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            *ppcVar6 = (char *)0x1;\n          }" { (expression_statement "*ppcVar6 = (char *)0x1;" (assignment_expression "*ppcVar6 = (char *)0x1" (pointer_expression "*ppcVar6" * identifier) = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }" else (compound_statement "{\n            iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }\n          }" { (expression_statement "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);" (assignment_expression "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" ( identifier , (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar6 = (char *)0x0;\n              ppcVar11 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }" { (expression_statement "iVar4 = *(int *)(pcStack_1e0 + -0x7fc4);" (assignment_expression "iVar4 = *(int *)(pcStack_1e0 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = *(code **)(pcStack_1e0 + -0x7db0);" (assignment_expression "pcVar19 = *(code **)(pcStack_1e0 + -0x7db0)" identifier = (pointer_expression "*(code **)(pcStack_1e0 + -0x7db0)" * (cast_expression "(code **)(pcStack_1e0 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7db0)" ( (binary_expression "pcStack_1e0 + -0x7db0" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar6 = (char *)0x0;" (assignment_expression "*ppcVar6 = (char *)0x0" (pointer_expression "*ppcVar6" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar11 = (char **)(iVar4 + -0x1568);" (assignment_expression "ppcVar11 = (char **)(iVar4 + -0x1568)" identifier = (cast_expression "(char **)(iVar4 + -0x1568)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x1568)" ( (binary_expression "iVar4 + -0x1568" identifier + number_literal) )))) ;) (expression_statement "iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11);" (assignment_expression "iVar4 = (*pcVar19)(uVar17,ppcVar11,0x11)" identifier = (call_expression "(*pcVar19)(uVar17,ppcVar11,0x11)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(uVar17,ppcVar11,0x11)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                *bufsize = 0;\n              }" { (expression_statement "*bufsize = 0;" (assignment_expression "*bufsize = 0" (pointer_expression "*bufsize" * identifier) = number_literal) ;) }) (else_clause "else {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }" else (compound_statement "{\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }" { (expression_statement "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);" (assignment_expression "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29);" (assignment_expression "iVar4 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7db0))(uVar17,ppcVar11,0x29)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7db0))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7db0)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7db0)" * (cast_expression "(code **)(pcStack_1e0 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7db0)" ( (binary_expression "pcStack_1e0 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(uVar17,ppcVar11,0x29)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n                  *bufsize = 1;\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  *bufsize = 1;\n                }" { (expression_statement "*bufsize = 1;" (assignment_expression "*bufsize = 1" (pointer_expression "*bufsize" * identifier) = number_literal) ;) })) }))) }) (else_clause "else {\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }" else (compound_statement "{\n              ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar6 = (char *)0x2;\n            }" { (expression_statement "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);" (assignment_expression "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" { (expression_statement "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);" (assignment_expression "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                  ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" { (expression_statement "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);" (assignment_expression "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                    *ppcVar6 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    *ppcVar6 = (char *)0x3;\n                  }" { (expression_statement "*ppcVar6 = (char *)0x3;" (assignment_expression "*ppcVar6 = (char *)0x3" (pointer_expression "*ppcVar6" * identifier) = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }" else (compound_statement "{\n                    ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar6 = (char *)0x4;\n                  }" { (expression_statement "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);" (assignment_expression "ppcVar11 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0002b8d8;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002b8d8;" goto statement_identifier ;)) (expression_statement "*ppcVar6 = (char *)0x4;" (assignment_expression "*ppcVar6 = (char *)0x4" (pointer_expression "*ppcVar6" * identifier) = (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_0002b804;" goto statement_identifier ;) })) })) (expression_statement "*ppcVar6 = (char *)0x2;" (assignment_expression "*ppcVar6 = (char *)0x2" (pointer_expression "*ppcVar6" * identifier) = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) }))) (labeled_statement "LAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar17);" statement_identifier : (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(uVar17);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(uVar17)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar17)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_1d8)" ( identifier ))) ;) }))) })) }))) (if_statement "if (iStack_1d4 == *piVar15) {\n    return uVar5;\n  }" if (parenthesized_expression "(iStack_1d4 == *piVar15)" ( (binary_expression "iStack_1d4 == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) })) (expression_statement "pcVar19 = *(code **)(pcStack_1e0 + -0x785c);" (assignment_expression "pcVar19 = *(code **)(pcStack_1e0 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_1e0 + -0x785c)" * (cast_expression "(code **)(pcStack_1e0 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x785c)" ( (binary_expression "pcStack_1e0 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = ftp_pwd;" (assignment_expression "pcVar20 = ftp_pwd" identifier = identifier) ;) (expression_statement "iVar4 = iStack_1d4;" (assignment_expression "iVar4 = iStack_1d4" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_220 = pcVar19 + 0x8ba8c;" (assignment_expression "pcStack_220 = pcVar19 + 0x8ba8c" identifier = (binary_expression "pcVar19 + 0x8ba8c" identifier + number_literal)) ;) (expression_statement "piVar16 = *(int **)(pcVar19 + 0x84298);" (assignment_expression "piVar16 = *(int **)(pcVar19 + 0x84298)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x84298)" * (cast_expression "(int **)(pcVar19 + 0x84298)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84298)" ( (binary_expression "pcVar19 + 0x84298" identifier + number_literal) ))))) ;) (expression_statement "iStack_214 = *piVar16;" (assignment_expression "iStack_214 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "uStack_20c = uVar5;" (assignment_expression "uStack_20c = uVar5" identifier = identifier) ;) (expression_statement "piStack_208 = piVar15;" (assignment_expression "piStack_208 = piVar15" identifier = identifier) ;) (expression_statement "pcStack_204 = pcVar9;" (assignment_expression "pcStack_204 = pcVar9" identifier = identifier) ;) (expression_statement "puStack_200 = bufsize;" (assignment_expression "puStack_200 = bufsize" identifier = identifier) ;) (expression_statement "pcStack_1fc = pcVar20;" (assignment_expression "pcStack_1fc = pcVar20" identifier = identifier) ;) (expression_statement "buf = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500),(char *)0x0);" (assignment_expression "buf = (char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500),(char *)0x0)" identifier = (cast_expression "(char **)ftp_request((char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500),(char *)0x0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request((char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500),(char *)0x0)" identifier (argument_list "((char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500),(char *)0x0)" ( (cast_expression "(char *)(*(int *)(pcVar19 + 0x83ac8) + -0x1500)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x83ac8) + -0x1500)" ( (binary_expression "*(int *)(pcVar19 + 0x83ac8) + -0x1500" (pointer_expression "*(int *)(pcVar19 + 0x83ac8)" * (cast_expression "(int *)(pcVar19 + 0x83ac8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x83ac8)" ( (binary_expression "pcVar19 + 0x83ac8" identifier + number_literal) )))) + number_literal) ))) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "bufsize_00 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(buf);" (assignment_expression "bufsize_00 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(buf)" identifier = (cast_expression "(undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(buf)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_220 + -0x77c8))(buf)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_220 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_220 + -0x77c8)" * (cast_expression "(code **)(pcStack_220 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x77c8)" ( (binary_expression "pcStack_220 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(buf)" ( identifier ))))) ;) (expression_statement "uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_220 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_220 + -0x7fc8)" * (cast_expression "(int *)(pcStack_220 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_220 + -0x7fc8)" ( (binary_expression "pcStack_220 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar7 = buf;" (assignment_expression "ppcVar7 = buf" identifier = identifier) ;) (expression_statement "iVar8 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);" (assignment_expression "iVar8 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13)" identifier = (call_expression "fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13)" identifier (argument_list "(iVar4,(char *)buf,(int)bufsize_00,in_f12_13)" ( identifier , (cast_expression "(char *)buf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)bufsize_00" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (if_statement "if (iVar8 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_220 + -0x7728))(buf);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    ppcVar7 = &pcStack_218;\n    uVar5 = ftp_response(iVar4,ppcVar7);\n    if (uVar5 == FTPOK) {\n      iVar4 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar5 = FTPSRVERR;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcStack_220 + -0x7728))(buf);\n  }" { (expression_statement "uVar5 = WRITEFAILED;" (assignment_expression "uVar5 = WRITEFAILED" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_220 + -0x7728))(buf);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(buf)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(buf)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    ppcVar7 = &pcStack_218;\n    uVar5 = ftp_response(iVar4,ppcVar7);\n    if (uVar5 == FTPOK) {\n      iVar4 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar5 = FTPSRVERR;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_220 + -0x7728))();\n    ppcVar7 = &pcStack_218;\n    uVar5 = ftp_response(iVar4,ppcVar7);\n    if (uVar5 == FTPOK) {\n      iVar4 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar5 = FTPSRVERR;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" { (expression_statement "(**(code **)(pcStack_220 + -0x7728))();" (call_expression "(**(code **)(pcStack_220 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar7 = &pcStack_218;" (assignment_expression "ppcVar7 = &pcStack_218" identifier = (pointer_expression "&pcStack_218" & identifier)) ;) (expression_statement "uVar5 = ftp_response(iVar4,ppcVar7);" (assignment_expression "uVar5 = ftp_response(iVar4,ppcVar7)" identifier = (call_expression "ftp_response(iVar4,ppcVar7)" identifier (argument_list "(iVar4,ppcVar7)" ( identifier , identifier )))) ;) (if_statement "if (uVar5 == FTPOK) {\n      iVar4 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar5 = FTPSRVERR;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }" if (parenthesized_expression "(uVar5 == FTPOK)" ( (binary_expression "uVar5 == FTPOK" identifier == identifier) )) (compound_statement "{\n      iVar4 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar5 = FTPSRVERR;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }" { (expression_statement "iVar4 = *(int *)(pcStack_220 + -0x7fc4);" (assignment_expression "iVar4 = *(int *)(pcStack_220 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_220 + -0x7fc4)" * (cast_expression "(int *)(pcStack_220 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_220 + -0x7fc4)" ( (binary_expression "pcStack_220 + -0x7fc4" identifier + number_literal) ))))) ;) (if_statement "if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }" if (parenthesized_expression "(*pcStack_218 != '5')" ( (binary_expression "*pcStack_218 != '5'" (pointer_expression "*pcStack_218" * identifier) != (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }" { (expression_statement "(**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0);" (call_expression "(**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar4 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7888)" * (pointer_expression "*(code **)(pcStack_220 + -0x7888)" * (cast_expression "(code **)(pcStack_220 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7888)" ( (binary_expression "pcStack_220 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcStack_218,iVar4 + -0x3d0)" ( identifier , (binary_expression "iVar4 + -0x3d0" identifier + number_literal) ))) ;) (expression_statement "ppcVar7 = (char **)(iVar4 + -0x3d0);" (assignment_expression "ppcVar7 = (char **)(iVar4 + -0x3d0)" identifier = (cast_expression "(char **)(iVar4 + -0x3d0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + -0x3d0)" ( (binary_expression "iVar4 + -0x3d0" identifier + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_220 + -0x7888))(0);" (assignment_expression "iVar4 = (**(code **)(pcStack_220 + -0x7888))(0)" identifier = (call_expression "(**(code **)(pcStack_220 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7888)" * (pointer_expression "*(code **)(pcStack_220 + -0x7888)" * (cast_expression "(code **)(pcStack_220 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7888)" ( (binary_expression "pcStack_220 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar11);\n          pcVar19 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar11 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar19)(iVar4);\n          pcVar19 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar11 = pcVar9;\n          (*pcVar19)(pcStack_218);\n          goto LAB_0002bae8;\n        }" { (expression_statement "(**(code **)(pcStack_220 + -0x7728))(*ppcVar11);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(*ppcVar11)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(*ppcVar11)" ( (pointer_expression "*ppcVar11" * identifier) ))) ;) (expression_statement "pcVar19 = *(code **)(pcStack_220 + -0x7fa4);" (assignment_expression "pcVar19 = *(code **)(pcStack_220 + -0x7fa4)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x7fa4)" * (cast_expression "(code **)(pcStack_220 + -0x7fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7fa4)" ( (binary_expression "pcStack_220 + -0x7fa4" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar11 = (char *)0x0;" (assignment_expression "*ppcVar11 = (char *)0x0" (pointer_expression "*ppcVar11" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = (char *)(*pcVar19)(iVar4);" (assignment_expression "pcVar9 = (char *)(*pcVar19)(iVar4)" identifier = (cast_expression "(char *)(*pcVar19)(iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar19)(iVar4)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar4)" ( identifier ))))) ;) (expression_statement "pcVar19 = *(code **)(pcStack_220 + -0x7728);" (assignment_expression "pcVar19 = *(code **)(pcStack_220 + -0x7728)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar11 = pcVar9;" (assignment_expression "*ppcVar11 = pcVar9" (pointer_expression "*ppcVar11" * identifier) = identifier) ;) (expression_statement "(*pcVar19)(pcStack_218);" (call_expression "(*pcVar19)(pcStack_218)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(pcStack_218)" ( identifier ))) ;) (goto_statement "goto LAB_0002bae8;" goto statement_identifier ;) })) })) (expression_statement "uVar5 = FTPSRVERR;" (assignment_expression "uVar5 = FTPSRVERR" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_220 + -0x7728))(pcStack_218);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(pcStack_218)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_218)" ( identifier ))) ;) })) }))) (labeled_statement "LAB_0002bae8:\n  if (iStack_214 == *piVar16) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (iStack_214 == *piVar16) {\n    return uVar5;\n  }" if (parenthesized_expression "(iStack_214 == *piVar16)" ( (binary_expression "iStack_214 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "pcVar19 = *(code **)(pcStack_220 + -0x785c);" (assignment_expression "pcVar19 = *(code **)(pcStack_220 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x785c)" * (cast_expression "(code **)(pcStack_220 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x785c)" ( (binary_expression "pcStack_220 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = ftp_size;" (assignment_expression "pcVar20 = ftp_size" identifier = identifier) ;) (expression_statement "iVar8 = iStack_214;" (assignment_expression "iVar8 = iStack_214" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = *(int **)(pcVar19 + 0x840f4);" (assignment_expression "piVar15 = *(int **)(pcVar19 + 0x840f4)" identifier = (pointer_expression "*(int **)(pcVar19 + 0x840f4)" * (cast_expression "(int **)(pcVar19 + 0x840f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x840f4)" ( (binary_expression "pcVar19 + 0x840f4" identifier + number_literal) ))))) ;) (expression_statement "iStack_254 = *piVar15;" (assignment_expression "iStack_254 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "uStack_250 = uVar5;" (assignment_expression "uStack_250 = uVar5" identifier = identifier) ;) (expression_statement "piStack_24c = piVar16;" (assignment_expression "piStack_24c = piVar16" identifier = identifier) ;) (expression_statement "iStack_248 = iVar4;" (assignment_expression "iStack_248 = iVar4" identifier = identifier) ;) (expression_statement "ppcStack_244 = ppcVar11;" (assignment_expression "ppcStack_244 = ppcVar11" identifier = identifier) ;) (expression_statement "ppcStack_240 = ppcVar6;" (assignment_expression "ppcStack_240 = ppcVar6" identifier = identifier) ;) (expression_statement "pcStack_23c = pcVar20;" (assignment_expression "pcStack_23c = pcVar20" identifier = identifier) ;) (expression_statement "pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x83924) + -0x14fc),(char *)ppcVar7);" (assignment_expression "pcVar9 = ftp_request((char *)(*(int *)(pcVar19 + 0x83924) + -0x14fc),(char *)ppcVar7)" identifier = (call_expression "ftp_request((char *)(*(int *)(pcVar19 + 0x83924) + -0x14fc),(char *)ppcVar7)" identifier (argument_list "((char *)(*(int *)(pcVar19 + 0x83924) + -0x14fc),(char *)ppcVar7)" ( (cast_expression "(char *)(*(int *)(pcVar19 + 0x83924) + -0x14fc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x83924) + -0x14fc)" ( (binary_expression "*(int *)(pcVar19 + 0x83924) + -0x14fc" (pointer_expression "*(int *)(pcVar19 + 0x83924)" * (cast_expression "(int *)(pcVar19 + 0x83924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x83924)" ( (binary_expression "pcVar19 + 0x83924" identifier + number_literal) )))) + number_literal) ))) , (cast_expression "(char *)ppcVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar4 = (**(code **)(pcVar19 + 0x84120))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcVar19 + 0x84120))(pcVar9)" identifier = (call_expression "(**(code **)(pcVar19 + 0x84120))(pcVar9)" (parenthesized_expression "(**(code **)(pcVar19 + 0x84120))" ( (pointer_expression "**(code **)(pcVar19 + 0x84120)" * (pointer_expression "*(code **)(pcVar19 + 0x84120)" * (cast_expression "(code **)(pcVar19 + 0x84120)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84120)" ( (binary_expression "pcVar19 + 0x84120" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "iVar4 = fd_write(iVar8,pcVar9,iVar4,in_f12_13);" (assignment_expression "iVar4 = fd_write(iVar8,pcVar9,iVar4,in_f12_13)" identifier = (call_expression "fd_write(iVar8,pcVar9,iVar4,in_f12_13)" identifier (argument_list "(iVar8,pcVar9,iVar4,in_f12_13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 < 0) {\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcVar19 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\n  else {\n    (**(code **)(pcVar19 + 0x841c0))();\n    uVar5 = ftp_response(iVar8,&pcStack_258);\n    pcVar9 = pcStack_258;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_258 == '5') {\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar20)(pcStack_258);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar5 = WRITEFAILED;\n    (**(code **)(pcVar19 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }" { (expression_statement "uVar5 = WRITEFAILED;" (assignment_expression "uVar5 = WRITEFAILED" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar19 + 0x841c0))(pcVar9);" (call_expression "(**(code **)(pcVar19 + 0x841c0))(pcVar9)" (parenthesized_expression "(**(code **)(pcVar19 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar19 + 0x841c0)" * (pointer_expression "*(code **)(pcVar19 + 0x841c0)" * (cast_expression "(code **)(pcVar19 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x841c0)" ( (binary_expression "pcVar19 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "*(undefined4 *)((int)bufsize_00 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)bufsize_00 + 4) = 0" (pointer_expression "*(undefined4 *)((int)bufsize_00 + 4)" * (cast_expression "(undefined4 *)((int)bufsize_00 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)bufsize_00 + 4)" ( (binary_expression "(int)bufsize_00 + 4" (cast_expression "(int)bufsize_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)bufsize_00 = 0;" (assignment_expression "*(undefined4 *)bufsize_00 = 0" (pointer_expression "*(undefined4 *)bufsize_00" * (cast_expression "(undefined4 *)bufsize_00" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcVar19 + 0x841c0))();\n    uVar5 = ftp_response(iVar8,&pcStack_258);\n    pcVar9 = pcStack_258;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_258 == '5') {\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar20)(pcStack_258);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcVar19 + 0x841c0))();\n    uVar5 = ftp_response(iVar8,&pcStack_258);\n    pcVar9 = pcStack_258;\n    if (uVar5 == FTPOK) {\n      if (*pcStack_258 == '5') {\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar20)(pcStack_258);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }" { (expression_statement "(**(code **)(pcVar19 + 0x841c0))();" (call_expression "(**(code **)(pcVar19 + 0x841c0))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar19 + 0x841c0)" * (pointer_expression "*(code **)(pcVar19 + 0x841c0)" * (cast_expression "(code **)(pcVar19 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x841c0)" ( (binary_expression "pcVar19 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = ftp_response(iVar8,&pcStack_258);" (assignment_expression "uVar5 = ftp_response(iVar8,&pcStack_258)" identifier = (call_expression "ftp_response(iVar8,&pcStack_258)" identifier (argument_list "(iVar8,&pcStack_258)" ( identifier , (pointer_expression "&pcStack_258" & identifier) )))) ;) (expression_statement "pcVar9 = pcStack_258;" (assignment_expression "pcVar9 = pcStack_258" identifier = identifier) ;) (if_statement "if (uVar5 == FTPOK) {\n      if (*pcStack_258 == '5') {\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar20)(pcStack_258);\n    }" if (parenthesized_expression "(uVar5 == FTPOK)" ( (binary_expression "uVar5 == FTPOK" identifier == identifier) )) (compound_statement "{\n      if (*pcStack_258 == '5') {\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar20)(pcStack_258);\n    }" { (if_statement "if (*pcStack_258 == '5') {\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" if (parenthesized_expression "(*pcStack_258 == '5')" ( (binary_expression "*pcStack_258 == '5'" (pointer_expression "*pcStack_258" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n      }" { (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x841c0);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x841c0)" * (cast_expression "(code **)(pcVar19 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x841c0)" ( (binary_expression "pcVar19 + 0x841c0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" else (compound_statement "{\n        piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();\n        *piVar16 = 0;\n        uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar16;\n        *bufsize_00 = uVar21;\n        pcVar20 = *(code **)(pcVar19 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" { (expression_statement "piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))();" (assignment_expression "piVar16 = (int *)(**(code **)(pcVar19 + 0x84348))()" identifier = (cast_expression "(int *)(**(code **)(pcVar19 + 0x84348))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + 0x84348))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x84348))" ( (pointer_expression "**(code **)(pcVar19 + 0x84348)" * (pointer_expression "*(code **)(pcVar19 + 0x84348)" * (cast_expression "(code **)(pcVar19 + 0x84348)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x84348)" ( (binary_expression "pcVar19 + 0x84348" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar16 = 0;" (assignment_expression "*piVar16 = 0" (pointer_expression "*piVar16" * identifier) = number_literal) ;) (expression_statement "uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10);" (assignment_expression "uVar21 = (**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10)" identifier = (call_expression "(**(code **)(pcVar19 + 0x841f4))(pcVar9 + 4,0,10)" (parenthesized_expression "(**(code **)(pcVar19 + 0x841f4))" ( (pointer_expression "**(code **)(pcVar19 + 0x841f4)" * (pointer_expression "*(code **)(pcVar19 + 0x841f4)" * (cast_expression "(code **)(pcVar19 + 0x841f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x841f4)" ( (binary_expression "pcVar19 + 0x841f4" identifier + number_literal) ))))) )) (argument_list "(pcVar9 + 4,0,10)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "*bufsize_00 = uVar21;" (assignment_expression "*bufsize_00 = uVar21" (pointer_expression "*bufsize_00" * identifier) = identifier) ;) (expression_statement "pcVar20 = *(code **)(pcVar19 + 0x841c0);" (assignment_expression "pcVar20 = *(code **)(pcVar19 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x841c0)" * (cast_expression "(code **)(pcVar19 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x841c0)" ( (binary_expression "pcVar19 + 0x841c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) {\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          (*pcVar20)(pcStack_258);\n          goto LAB_0002bc24;\n        }" { (expression_statement "(*pcVar20)(pcStack_258);" (call_expression "(*pcVar20)(pcStack_258)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(pcStack_258)" ( identifier ))) ;) (goto_statement "goto LAB_0002bc24;" goto statement_identifier ;) })) }))) (expression_statement "(*pcVar20)(pcStack_258);" (call_expression "(*pcVar20)(pcStack_258)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(pcStack_258)" ( identifier ))) ;) })) (expression_statement "*(undefined4 *)((int)bufsize_00 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)bufsize_00 + 4) = 0" (pointer_expression "*(undefined4 *)((int)bufsize_00 + 4)" * (cast_expression "(undefined4 *)((int)bufsize_00 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)bufsize_00 + 4)" ( (binary_expression "(int)bufsize_00 + 4" (cast_expression "(int)bufsize_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)bufsize_00 = 0;" (assignment_expression "*(undefined4 *)bufsize_00 = 0" (pointer_expression "*(undefined4 *)bufsize_00" * (cast_expression "(undefined4 *)bufsize_00" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (labeled_statement "LAB_0002bc24:\n  if (iStack_254 == *piVar15) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (iStack_254 == *piVar15) {\n    return uVar5;\n  }" if (parenthesized_expression "(iStack_254 == *piVar15)" ( (binary_expression "iStack_254 == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x8408c);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x8408c)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x8408c)" * (cast_expression "(code **)(pcVar19 + 0x8408c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x8408c)" ( (binary_expression "pcVar19 + 0x8408c" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iStack_254;" (assignment_expression "iVar4 = iStack_254" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar4 == 0) {\n    return 0x49;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0x49;\n  }" { (return_statement "return 0x49;" return number_literal ;) })) (expression_statement "iVar8 = (**(code **)(pcVar19 + 0x83e84))();" (assignment_expression "iVar8 = (**(code **)(pcVar19 + 0x83e84))()" identifier = (call_expression "(**(code **)(pcVar19 + 0x83e84))()" (parenthesized_expression "(**(code **)(pcVar19 + 0x83e84))" ( (pointer_expression "**(code **)(pcVar19 + 0x83e84)" * (pointer_expression "*(code **)(pcVar19 + 0x83e84)" * (cast_expression "(code **)(pcVar19 + 0x83e84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x83e84)" ( (binary_expression "pcVar19 + 0x83e84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 0) {\n    uVar5 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar5 != NOCONERROR) {\n      if (uVar5 - 0x61 < 0x1a) {\n        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar5;\n    }\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar5 != NOCONERROR) {\n      if (uVar5 - 0x61 < 0x1a) {\n        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar5;\n    }\n  }" { (expression_statement "uVar5 = (uerr_t)*(char *)(iVar4 + 5);" (assignment_expression "uVar5 = (uerr_t)*(char *)(iVar4 + 5)" identifier = (binary_expression "(uerr_t)*(char *)(iVar4 + 5)" (parenthesized_expression "(uerr_t)" ( identifier )) * (cast_expression "(char *)(iVar4 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 5)" ( (binary_expression "iVar4 + 5" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 != NOCONERROR) {\n      if (uVar5 - 0x61 < 0x1a) {\n        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar5;\n    }" if (parenthesized_expression "(uVar5 != NOCONERROR)" ( (binary_expression "uVar5 != NOCONERROR" identifier != identifier) )) (compound_statement "{\n      if (uVar5 - 0x61 < 0x1a) {\n        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar5;\n    }" { (if_statement "if (uVar5 - 0x61 < 0x1a) {\n        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }" if (parenthesized_expression "(uVar5 - 0x61 < 0x1a)" ( (binary_expression "uVar5 - 0x61 < 0x1a" (binary_expression "uVar5 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n        uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }" { (expression_statement "uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);" (assignment_expression "uVar5 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20)" identifier = (call_expression "(uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20)" (call_expression "(uerr_t)(char)" (parenthesized_expression "(uerr_t)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(*(char *)(iVar4 + 5) + -0x20)" ( (binary_expression "*(char *)(iVar4 + 5) + -0x20" (pointer_expression "*(char *)(iVar4 + 5)" * (cast_expression "(char *)(iVar4 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 5)" ( (binary_expression "iVar4 + 5" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return uVar5;" return identifier ;) })) })) (return_statement "return 0x49;" return number_literal ;) })))
(translation_unit "int ftp_epsv(char *param_1,int *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char **ppcVar8;\n  char **ppcVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  int iVar14;\n  undefined *puVar15;\n  uint uVar16;\n  char cVar18;\n  char **ppcVar17;\n  int iVar19;\n  char *pcVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined8 uVar26;\n  char *pcStack_258;\n  int iStack_254;\n  int iStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  int iStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  int iStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  int iStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  undefined4 uStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  int iStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  int iStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  int iStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  int iStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *local_20;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);\n  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  uVar7 = uVar3;\n  iVar5 = fd_write(param_1,uVar3,uVar4);\n  cVar18 = (char)uVar7;\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }\n  pcVar24 = ftp_type;\n  iVar6 = local_1c;\n  puVar15 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar15 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar22 = *(int **)(puVar15 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar22;\n  acStack_58[0] = cVar18;\n  iStack_50 = iVar5;\n  piStack_48 = param_3;\n  pcStack_44 = pcVar24;\n  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);\n  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }\n  if (iStack_54 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puStack_70 + -0x785c);\n  pcVar25 = ftp_cwd;\n  iVar5 = iStack_54;\n  (*pcVar24)();\n  pcStack_b0 = pcVar24 + 0x8c410;\n  piVar23 = *(int **)(pcVar24 + 0x84c1c);\n  iStack_9c = *piVar23;\n  uStack_98 = uVar7;\n  piStack_94 = piVar22;\n  iStack_90 = iVar6;\n  pcStack_8c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);\n  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar6 = fd_write(iVar5,uVar7,uVar3);\n  if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (iStack_9c == *piVar23) {\n    return iVar6;\n  }\n  pcVar24 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar25 = ftp_rest;\n  iVar6 = iStack_9c;\n  (*pcVar24)();\n  pcStack_f0 = pcVar24 + 0x8c2b4;\n  piVar22 = *(int **)(pcVar24 + 0x84ac0);\n  iStack_dc = *piVar22;\n  uStack_d8 = uVar7;\n  piStack_d4 = piVar23;\n  iStack_d0 = iVar5;\n  pcStack_cc = pcVar25;\n  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);\n  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);\n  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }\n  if (iStack_dc == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar25 = ftp_retr;\n  iVar5 = iStack_dc;\n  (*pcVar24)();\n  piVar23 = *(int **)(pcVar24 + 0x8496c);\n  iStack_11c = *piVar23;\n  uStack_118 = uVar7;\n  piStack_114 = piVar22;\n  iStack_110 = iVar6;\n  pcStack_10c = pcVar25;\n  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);\n  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);\n  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);\n  ppcVar17 = ppcVar8;\n  iVar14 = fd_write(iVar5);\n  if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }\n  if (iStack_11c == *piVar23) {\n    return iVar14;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x84904);\n  iVar14 = iStack_11c;\n  (*pcVar24)();\n  pcStack_198 = pcVar24 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar19 = 0;\n  ppcStack_178 = ppcVar8;\n  piStack_174 = piVar23;\n  iStack_170 = iVar5;\n  pcStack_16c = param_1;\n  if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }\n  iVar6 = *(int *)(pcStack_198 + -0x7c70);\n  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }\n  pcVar24 = *(code **)(pcStack_198 + -0x785c);\n  pcVar25 = ftp_syst;\n  pcVar13 = pcStack_17c;\n  (*pcVar24)();\n  pcStack_1e0 = pcVar24 + 0x8bd8c;\n  piVar22 = *(int **)(pcVar24 + 0x84598);\n  iStack_1d4 = *piVar22;\n  ppcStack_1d0 = ppcVar9;\n  iStack_1cc = iVar19;\n  iStack_1c8 = iVar14;\n  iStack_1c4 = iVar6 + -0x6ee0;\n  iStack_1c0 = iVar21;\n  ppcStack_1bc = ppcVar17;\n  uStack_1b8 = uVar7;\n  pcStack_1b4 = pcVar25;\n  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);\n  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar17 = ppcVar9;\n  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar25 = ftp_pwd;\n  iVar6 = iStack_1d4;\n  (*pcVar24)();\n  pcStack_220 = pcVar24 + 0x8ba8c;\n  piVar23 = *(int **)(pcVar24 + 0x84298);\n  iStack_214 = *piVar23;\n  iStack_20c = iVar5;\n  piStack_208 = piVar22;\n  pcStack_204 = pcVar13;\n  puStack_200 = puVar10;\n  pcStack_1fc = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);\n  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_220 + -0x785c);\n  pcVar25 = ftp_size;\n  iVar14 = iStack_214;\n  (*pcVar24)();\n  piVar22 = *(int **)(pcVar24 + 0x840f4);\n  iStack_254 = *piVar22;\n  iStack_250 = iVar5;\n  piStack_24c = piVar23;\n  iStack_248 = iVar6;\n  ppcStack_244 = ppcVar17;\n  ppcStack_240 = ppcVar8;\n  pcStack_23c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);\n  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);\n  iVar5 = fd_write(iVar14,uVar7,uVar3);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x8408c);\n  iVar5 = iStack_254;\n  (*pcVar24)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar24 + 0x83e84))();\n  if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }\n  return 0x49;\n}\n\n" (function_definition "int ftp_epsv(char *param_1,int *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char **ppcVar8;\n  char **ppcVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  int iVar14;\n  undefined *puVar15;\n  uint uVar16;\n  char cVar18;\n  char **ppcVar17;\n  int iVar19;\n  char *pcVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined8 uVar26;\n  char *pcStack_258;\n  int iStack_254;\n  int iStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  int iStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  int iStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  int iStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  undefined4 uStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  int iStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  int iStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  int iStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  int iStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *local_20;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);\n  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  uVar7 = uVar3;\n  iVar5 = fd_write(param_1,uVar3,uVar4);\n  cVar18 = (char)uVar7;\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }\n  pcVar24 = ftp_type;\n  iVar6 = local_1c;\n  puVar15 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar15 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar22 = *(int **)(puVar15 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar22;\n  acStack_58[0] = cVar18;\n  iStack_50 = iVar5;\n  piStack_48 = param_3;\n  pcStack_44 = pcVar24;\n  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);\n  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }\n  if (iStack_54 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puStack_70 + -0x785c);\n  pcVar25 = ftp_cwd;\n  iVar5 = iStack_54;\n  (*pcVar24)();\n  pcStack_b0 = pcVar24 + 0x8c410;\n  piVar23 = *(int **)(pcVar24 + 0x84c1c);\n  iStack_9c = *piVar23;\n  uStack_98 = uVar7;\n  piStack_94 = piVar22;\n  iStack_90 = iVar6;\n  pcStack_8c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);\n  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar6 = fd_write(iVar5,uVar7,uVar3);\n  if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (iStack_9c == *piVar23) {\n    return iVar6;\n  }\n  pcVar24 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar25 = ftp_rest;\n  iVar6 = iStack_9c;\n  (*pcVar24)();\n  pcStack_f0 = pcVar24 + 0x8c2b4;\n  piVar22 = *(int **)(pcVar24 + 0x84ac0);\n  iStack_dc = *piVar22;\n  uStack_d8 = uVar7;\n  piStack_d4 = piVar23;\n  iStack_d0 = iVar5;\n  pcStack_cc = pcVar25;\n  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);\n  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);\n  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }\n  if (iStack_dc == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar25 = ftp_retr;\n  iVar5 = iStack_dc;\n  (*pcVar24)();\n  piVar23 = *(int **)(pcVar24 + 0x8496c);\n  iStack_11c = *piVar23;\n  uStack_118 = uVar7;\n  piStack_114 = piVar22;\n  iStack_110 = iVar6;\n  pcStack_10c = pcVar25;\n  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);\n  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);\n  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);\n  ppcVar17 = ppcVar8;\n  iVar14 = fd_write(iVar5);\n  if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }\n  if (iStack_11c == *piVar23) {\n    return iVar14;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x84904);\n  iVar14 = iStack_11c;\n  (*pcVar24)();\n  pcStack_198 = pcVar24 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar19 = 0;\n  ppcStack_178 = ppcVar8;\n  piStack_174 = piVar23;\n  iStack_170 = iVar5;\n  pcStack_16c = param_1;\n  if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }\n  iVar6 = *(int *)(pcStack_198 + -0x7c70);\n  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }\n  pcVar24 = *(code **)(pcStack_198 + -0x785c);\n  pcVar25 = ftp_syst;\n  pcVar13 = pcStack_17c;\n  (*pcVar24)();\n  pcStack_1e0 = pcVar24 + 0x8bd8c;\n  piVar22 = *(int **)(pcVar24 + 0x84598);\n  iStack_1d4 = *piVar22;\n  ppcStack_1d0 = ppcVar9;\n  iStack_1cc = iVar19;\n  iStack_1c8 = iVar14;\n  iStack_1c4 = iVar6 + -0x6ee0;\n  iStack_1c0 = iVar21;\n  ppcStack_1bc = ppcVar17;\n  uStack_1b8 = uVar7;\n  pcStack_1b4 = pcVar25;\n  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);\n  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar17 = ppcVar9;\n  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar25 = ftp_pwd;\n  iVar6 = iStack_1d4;\n  (*pcVar24)();\n  pcStack_220 = pcVar24 + 0x8ba8c;\n  piVar23 = *(int **)(pcVar24 + 0x84298);\n  iStack_214 = *piVar23;\n  iStack_20c = iVar5;\n  piStack_208 = piVar22;\n  pcStack_204 = pcVar13;\n  puStack_200 = puVar10;\n  pcStack_1fc = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);\n  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_220 + -0x785c);\n  pcVar25 = ftp_size;\n  iVar14 = iStack_214;\n  (*pcVar24)();\n  piVar22 = *(int **)(pcVar24 + 0x840f4);\n  iStack_254 = *piVar22;\n  iStack_250 = iVar5;\n  piStack_24c = piVar23;\n  iStack_248 = iVar6;\n  ppcStack_244 = ppcVar17;\n  ppcStack_240 = ppcVar8;\n  pcStack_23c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);\n  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);\n  iVar5 = fd_write(iVar14,uVar7,uVar3);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x8408c);\n  iVar5 = iStack_254;\n  (*pcVar24)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar24 + 0x83e84))();\n  if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }\n  return 0x49;\n}" primitive_type (function_declarator "ftp_epsv(char *param_1,int *param_2,int *param_3,uint param_4)" identifier (parameter_list "(char *param_1,int *param_2,int *param_3,uint param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char **ppcVar8;\n  char **ppcVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  int iVar14;\n  undefined *puVar15;\n  uint uVar16;\n  char cVar18;\n  char **ppcVar17;\n  int iVar19;\n  char *pcVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined8 uVar26;\n  char *pcStack_258;\n  int iStack_254;\n  int iStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  int iStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  int iStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  int iStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  undefined4 uStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  int iStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  int iStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  int iStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  int iStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *local_20;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);\n  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  uVar7 = uVar3;\n  iVar5 = fd_write(param_1,uVar3,uVar4);\n  cVar18 = (char)uVar7;\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }\n  pcVar24 = ftp_type;\n  iVar6 = local_1c;\n  puVar15 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar15 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar22 = *(int **)(puVar15 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar22;\n  acStack_58[0] = cVar18;\n  iStack_50 = iVar5;\n  piStack_48 = param_3;\n  pcStack_44 = pcVar24;\n  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);\n  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }\n  if (iStack_54 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puStack_70 + -0x785c);\n  pcVar25 = ftp_cwd;\n  iVar5 = iStack_54;\n  (*pcVar24)();\n  pcStack_b0 = pcVar24 + 0x8c410;\n  piVar23 = *(int **)(pcVar24 + 0x84c1c);\n  iStack_9c = *piVar23;\n  uStack_98 = uVar7;\n  piStack_94 = piVar22;\n  iStack_90 = iVar6;\n  pcStack_8c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);\n  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar6 = fd_write(iVar5,uVar7,uVar3);\n  if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (iStack_9c == *piVar23) {\n    return iVar6;\n  }\n  pcVar24 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar25 = ftp_rest;\n  iVar6 = iStack_9c;\n  (*pcVar24)();\n  pcStack_f0 = pcVar24 + 0x8c2b4;\n  piVar22 = *(int **)(pcVar24 + 0x84ac0);\n  iStack_dc = *piVar22;\n  uStack_d8 = uVar7;\n  piStack_d4 = piVar23;\n  iStack_d0 = iVar5;\n  pcStack_cc = pcVar25;\n  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);\n  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);\n  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }\n  if (iStack_dc == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar25 = ftp_retr;\n  iVar5 = iStack_dc;\n  (*pcVar24)();\n  piVar23 = *(int **)(pcVar24 + 0x8496c);\n  iStack_11c = *piVar23;\n  uStack_118 = uVar7;\n  piStack_114 = piVar22;\n  iStack_110 = iVar6;\n  pcStack_10c = pcVar25;\n  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);\n  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);\n  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);\n  ppcVar17 = ppcVar8;\n  iVar14 = fd_write(iVar5);\n  if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }\n  if (iStack_11c == *piVar23) {\n    return iVar14;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x84904);\n  iVar14 = iStack_11c;\n  (*pcVar24)();\n  pcStack_198 = pcVar24 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar19 = 0;\n  ppcStack_178 = ppcVar8;\n  piStack_174 = piVar23;\n  iStack_170 = iVar5;\n  pcStack_16c = param_1;\n  if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }\n  iVar6 = *(int *)(pcStack_198 + -0x7c70);\n  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }\n  pcVar24 = *(code **)(pcStack_198 + -0x785c);\n  pcVar25 = ftp_syst;\n  pcVar13 = pcStack_17c;\n  (*pcVar24)();\n  pcStack_1e0 = pcVar24 + 0x8bd8c;\n  piVar22 = *(int **)(pcVar24 + 0x84598);\n  iStack_1d4 = *piVar22;\n  ppcStack_1d0 = ppcVar9;\n  iStack_1cc = iVar19;\n  iStack_1c8 = iVar14;\n  iStack_1c4 = iVar6 + -0x6ee0;\n  iStack_1c0 = iVar21;\n  ppcStack_1bc = ppcVar17;\n  uStack_1b8 = uVar7;\n  pcStack_1b4 = pcVar25;\n  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);\n  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar17 = ppcVar9;\n  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar25 = ftp_pwd;\n  iVar6 = iStack_1d4;\n  (*pcVar24)();\n  pcStack_220 = pcVar24 + 0x8ba8c;\n  piVar23 = *(int **)(pcVar24 + 0x84298);\n  iStack_214 = *piVar23;\n  iStack_20c = iVar5;\n  piStack_208 = piVar22;\n  pcStack_204 = pcVar13;\n  puStack_200 = puVar10;\n  pcStack_1fc = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);\n  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_220 + -0x785c);\n  pcVar25 = ftp_size;\n  iVar14 = iStack_214;\n  (*pcVar24)();\n  piVar22 = *(int **)(pcVar24 + 0x840f4);\n  iStack_254 = *piVar22;\n  iStack_250 = iVar5;\n  piStack_24c = piVar23;\n  iStack_248 = iVar6;\n  ppcStack_244 = ppcVar17;\n  ppcStack_240 = ppcVar8;\n  pcStack_23c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);\n  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);\n  iVar5 = fd_write(iVar14,uVar7,uVar3);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x8408c);\n  iVar5 = iStack_254;\n  (*pcVar24)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar24 + 0x83e84))();\n  if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }\n  return 0x49;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char **ppcVar8;" primitive_type (pointer_declarator "**ppcVar8" * (pointer_declarator "*ppcVar8" * identifier)) ;) (declaration "char **ppcVar9;" primitive_type (pointer_declarator "**ppcVar9" * (pointer_declarator "*ppcVar9" * identifier)) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "char cVar18;" primitive_type identifier ;) (declaration "char **ppcVar17;" primitive_type (pointer_declarator "**ppcVar17" * (pointer_declarator "*ppcVar17" * identifier)) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "undefined8 uVar26;" type_identifier identifier ;) (declaration "char *pcStack_258;" primitive_type (pointer_declarator "*pcStack_258" * identifier) ;) (declaration "int iStack_254;" primitive_type identifier ;) (declaration "int iStack_250;" primitive_type identifier ;) (declaration "int *piStack_24c;" primitive_type (pointer_declarator "*piStack_24c" * identifier) ;) (declaration "int iStack_248;" primitive_type identifier ;) (declaration "char **ppcStack_244;" primitive_type (pointer_declarator "**ppcStack_244" * (pointer_declarator "*ppcStack_244" * identifier)) ;) (declaration "char **ppcStack_240;" primitive_type (pointer_declarator "**ppcStack_240" * (pointer_declarator "*ppcStack_240" * identifier)) ;) (declaration "code *pcStack_23c;" type_identifier (pointer_declarator "*pcStack_23c" * identifier) ;) (declaration "undefined8 uStack_228;" type_identifier identifier ;) (declaration "code *pcStack_220;" type_identifier (pointer_declarator "*pcStack_220" * identifier) ;) (declaration "char *pcStack_218;" primitive_type (pointer_declarator "*pcStack_218" * identifier) ;) (declaration "int iStack_214;" primitive_type identifier ;) (declaration "int iStack_20c;" primitive_type identifier ;) (declaration "int *piStack_208;" primitive_type (pointer_declarator "*piStack_208" * identifier) ;) (declaration "char *pcStack_204;" primitive_type (pointer_declarator "*pcStack_204" * identifier) ;) (declaration "undefined4 *puStack_200;" type_identifier (pointer_declarator "*puStack_200" * identifier) ;) (declaration "code *pcStack_1fc;" type_identifier (pointer_declarator "*pcStack_1fc" * identifier) ;) (declaration "undefined8 uStack_1e8;" type_identifier identifier ;) (declaration "code *pcStack_1e0;" type_identifier (pointer_declarator "*pcStack_1e0" * identifier) ;) (declaration "char *pcStack_1d8;" primitive_type (pointer_declarator "*pcStack_1d8" * identifier) ;) (declaration "int iStack_1d4;" primitive_type identifier ;) (declaration "char **ppcStack_1d0;" primitive_type (pointer_declarator "**ppcStack_1d0" * (pointer_declarator "*ppcStack_1d0" * identifier)) ;) (declaration "int iStack_1cc;" primitive_type identifier ;) (declaration "int iStack_1c8;" primitive_type identifier ;) (declaration "int iStack_1c4;" primitive_type identifier ;) (declaration "int iStack_1c0;" primitive_type identifier ;) (declaration "char **ppcStack_1bc;" primitive_type (pointer_declarator "**ppcStack_1bc" * (pointer_declarator "*ppcStack_1bc" * identifier)) ;) (declaration "undefined4 uStack_1b8;" type_identifier identifier ;) (declaration "code *pcStack_1b4;" type_identifier (pointer_declarator "*pcStack_1b4" * identifier) ;) (declaration "undefined8 uStack_1a0;" type_identifier identifier ;) (declaration "code *pcStack_198;" type_identifier (pointer_declarator "*pcStack_198" * identifier) ;) (declaration "int iStack_18c;" primitive_type identifier ;) (declaration "undefined4 *puStack_188;" type_identifier (pointer_declarator "*puStack_188" * identifier) ;) (declaration "byte *pbStack_184;" type_identifier (pointer_declarator "*pbStack_184" * identifier) ;) (declaration "char *pcStack_180;" primitive_type (pointer_declarator "*pcStack_180" * identifier) ;) (declaration "char *pcStack_17c;" primitive_type (pointer_declarator "*pcStack_17c" * identifier) ;) (declaration "char **ppcStack_178;" primitive_type (pointer_declarator "**ppcStack_178" * (pointer_declarator "*ppcStack_178" * identifier)) ;) (declaration "int *piStack_174;" primitive_type (pointer_declarator "*piStack_174" * identifier) ;) (declaration "int iStack_170;" primitive_type identifier ;) (declaration "char *pcStack_16c;" primitive_type (pointer_declarator "*pcStack_16c" * identifier) ;) (declaration "byte *pbStack_138;" type_identifier (pointer_declarator "*pbStack_138" * identifier) ;) (declaration "char *pcStack_120;" primitive_type (pointer_declarator "*pcStack_120" * identifier) ;) (declaration "int iStack_11c;" primitive_type identifier ;) (declaration "undefined4 uStack_118;" type_identifier identifier ;) (declaration "int *piStack_114;" primitive_type (pointer_declarator "*piStack_114" * identifier) ;) (declaration "int iStack_110;" primitive_type identifier ;) (declaration "code *pcStack_10c;" type_identifier (pointer_declarator "*pcStack_10c" * identifier) ;) (declaration "undefined8 uStack_f8;" type_identifier identifier ;) (declaration "code *pcStack_f0;" type_identifier (pointer_declarator "*pcStack_f0" * identifier) ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "char *pcStack_e0;" primitive_type (pointer_declarator "*pcStack_e0" * identifier) ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "code *pcStack_cc;" type_identifier (pointer_declarator "*pcStack_cc" * identifier) ;) (declaration "undefined8 uStack_b8;" type_identifier identifier ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "char *pcStack_a0;" primitive_type (pointer_declarator "*pcStack_a0" * identifier) ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "undefined4 uStack_98;" type_identifier identifier ;) (declaration "int *piStack_94;" primitive_type (pointer_declarator "*piStack_94" * identifier) ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "code *pcStack_8c;" type_identifier (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "undefined8 uStack_78;" type_identifier identifier ;) (declaration "undefined *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "char *pcStack_5c;" primitive_type (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "char acStack_58 [4];" primitive_type (array_declarator "acStack_58 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "undefined *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "int *piStack_48;" primitive_type (pointer_declarator "*piStack_48" * identifier) ;) (declaration "code *pcStack_44;" type_identifier (pointer_declarator "*pcStack_44" * identifier) ;) (declaration "undefined8 local_30;" type_identifier identifier ;) (declaration "char *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000afc3c" * (cast_expression "(int *)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }" if (parenthesized_expression "(*param_2 == 2)" ( (binary_expression "*param_2 == 2" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }" { (expression_statement "puVar15 = PTR_DAT_000af498 + -0x6670;" (assignment_expression "puVar15 = PTR_DAT_000af498 + -0x6670" identifier = (binary_expression "PTR_DAT_000af498 + -0x6670" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }" else (compound_statement "{\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }" { (expression_statement "puVar15 = PTR_s_hallenge__000af46c + 0x1550;" (assignment_expression "puVar15 = PTR_s_hallenge__000af46c + 0x1550" identifier = (binary_expression "PTR_s_hallenge__000af46c + 0x1550" identifier + number_literal)) ;) }))) (expression_statement "uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);" (assignment_expression "uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15)" identifier = (call_expression "FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15)" identifier (argument_list "(PTR_s_hallenge__000af46c + -0x15ec,puVar15)" ( (binary_expression "PTR_s_hallenge__000af46c + -0x15ec" identifier + number_literal) , identifier )))) ;) (expression_statement "uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000afc68)(uVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000afc68)" ( (pointer_expression "*(code *)PTR_strlen_000afc68" * (cast_expression "(code *)PTR_strlen_000afc68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);" (assignment_expression "local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" * (cast_expression "(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000af468 + 0x40b8)" ( (binary_expression "PTR_LAB_000af468 + 0x40b8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = uVar3;" (assignment_expression "uVar7 = uVar3" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(param_1,uVar3,uVar4);" (assignment_expression "iVar5 = fd_write(param_1,uVar3,uVar4)" identifier = (call_expression "fd_write(param_1,uVar3,uVar4)" identifier (argument_list "(param_1,uVar3,uVar4)" ( identifier , identifier , identifier )))) ;) (expression_statement "cVar18 = (char)uVar7;" (assignment_expression "cVar18 = (char)uVar7" identifier = (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000afd08)(uVar3);" (call_expression "(*(code *)PTR_free_000afd08)(uVar3)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3)" ( identifier ))) ;) }) (else_clause "else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }" else (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }" { (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "cVar18 = (char)&local_20;" (assignment_expression "cVar18 = (char)&local_20" identifier = (cast_expression "(char)&local_20" ( (type_descriptor "char" primitive_type) ) (pointer_expression "&local_20" & identifier))) ;) (expression_statement "iVar5 = ftp_response(param_1);" (assignment_expression "iVar5 = ftp_response(param_1)" identifier = (call_expression "ftp_response(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }" { (expression_statement "param_1 = local_20;" (assignment_expression "param_1 = local_20" identifier = identifier) ;) (if_statement "if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }" if (parenthesized_expression "(*local_20 == '2')" ( (binary_expression "*local_20 == '2'" (pointer_expression "*local_20" * identifier) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }" { (if_statement "if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }" if (parenthesized_expression "(PTR_opt_000af488[0x16b] != '\0')" ( (binary_expression "PTR_opt_000af488[0x16b] != '\0'" (subscript_expression "PTR_opt_000af488[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }" { (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20)" identifier (argument_list "(PTR_s_hallenge__000af46c + -0x15e4,local_20)" ( (binary_expression "PTR_s_hallenge__000af46c + -0x15e4" identifier + number_literal) , identifier ))) ;) (expression_statement "param_1 = local_20;" (assignment_expression "param_1 = local_20" identifier = identifier) ;) })) (expression_statement "cVar18 = '(';" (assignment_expression "cVar18 = '('" identifier = (char_literal "'('" ' character ')) ;) (expression_statement "iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);" (assignment_expression "iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1)" identifier = (call_expression "(*(code *)PTR_strchr_000afdc8)(param_1)" (parenthesized_expression "(*(code *)PTR_strchr_000afdc8)" ( (pointer_expression "*(code *)PTR_strchr_000afdc8" * (cast_expression "(code *)PTR_strchr_000afdc8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar15 = PTR_free_000afd08;" (assignment_expression "puVar15 = PTR_free_000afd08" identifier = identifier) ;) (if_statement "if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }" if (parenthesized_expression "(((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14))" ( (binary_expression "((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)" (parenthesized_expression "((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))" ( (binary_expression "(iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e)" ( (comma_expression "iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e" (assignment_expression "iVar14 = (int)*(char *)(iVar6 + 1)" identifier = (cast_expression "(int)*(char *)(iVar6 + 1)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar6 + 1)" * (cast_expression "(char *)(iVar6 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )))))) , (binary_expression "(iVar14 - 0x21U & 0xff) < 0x5e" (parenthesized_expression "(iVar14 - 0x21U & 0xff)" ( (binary_expression "iVar14 - 0x21U & 0xff" (binary_expression "iVar14 - 0x21U" identifier - number_literal) & number_literal) )) < number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar6 + 2) == iVar14)" ( (binary_expression "*(char *)(iVar6 + 2) == iVar14" (pointer_expression "*(char *)(iVar6 + 2)" * (cast_expression "(char *)(iVar6 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 2)" ( (binary_expression "iVar6 + 2" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }" { (expression_statement "cVar18 = *(char *)(iVar6 + 3);" (assignment_expression "cVar18 = *(char *)(iVar6 + 3)" identifier = (pointer_expression "*(char *)(iVar6 + 3)" * (cast_expression "(char *)(iVar6 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 3)" ( (binary_expression "iVar6 + 3" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (char *)(iVar6 + 4);" (assignment_expression "pcVar13 = (char *)(iVar6 + 4)" identifier = (cast_expression "(char *)(iVar6 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) ;) (if_statement "if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }" if (parenthesized_expression "(cVar18 == iVar14)" ( (binary_expression "cVar18 == iVar14" identifier == identifier) )) (compound_statement "{\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }" { (expression_statement "iVar19 = (int)*pcVar13;" (assignment_expression "iVar19 = (int)*pcVar13" identifier = (cast_expression "(int)*pcVar13" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar13" * identifier))) ;) (expression_statement "param_4 = iVar19 - 0x30;" (assignment_expression "param_4 = iVar19 - 0x30" identifier = (binary_expression "iVar19 - 0x30" identifier - number_literal)) ;) (expression_statement "uVar16 = (uint)(param_4 < 10);" (assignment_expression "uVar16 = (uint)(param_4 < 10)" identifier = (call_expression "(uint)(param_4 < 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 < 10)" ( (binary_expression "param_4 < 10" identifier < number_literal) )))) ;) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);" do (compound_statement "{\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              }" { (expression_statement "pcVar20 = pcVar13 + 1;" (assignment_expression "pcVar20 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uVar16 + iVar21) * 2;" (assignment_expression "uVar16 = (uVar16 + iVar21) * 2" identifier = (binary_expression "(uVar16 + iVar21) * 2" (parenthesized_expression "(uVar16 + iVar21)" ( (binary_expression "uVar16 + iVar21" identifier + identifier) )) * number_literal)) ;) (expression_statement "iVar21 = param_4 + uVar16;" (assignment_expression "iVar21 = param_4 + uVar16" identifier = (binary_expression "param_4 + uVar16" identifier + identifier)) ;) (if_statement "if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }" if (parenthesized_expression "((char *)(iVar6 + 9) == pcVar20)" ( (binary_expression "(char *)(iVar6 + 9) == pcVar20" (cast_expression "(char *)(iVar6 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 9)" ( (binary_expression "iVar6 + 9" identifier + number_literal) ))) == identifier) )) (compound_statement "{\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }" { (expression_statement "iVar19 = (int)pcVar13[1];" (assignment_expression "iVar19 = (int)pcVar13[1]" identifier = (cast_expression "(int)pcVar13[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar13 = (char *)(iVar6 + 9);" (assignment_expression "pcVar13 = (char *)(iVar6 + 9)" identifier = (cast_expression "(char *)(iVar6 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 9)" ( (binary_expression "iVar6 + 9" identifier + number_literal) )))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar19 = (int)*pcVar20;" (assignment_expression "iVar19 = (int)*pcVar20" identifier = (cast_expression "(int)*pcVar20" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar20" * identifier))) ;) (expression_statement "param_4 = iVar19 - 0x30;" (assignment_expression "param_4 = iVar19 - 0x30" identifier = (binary_expression "iVar19 - 0x30" identifier - number_literal)) ;) (expression_statement "uVar16 = iVar21 * 4;" (assignment_expression "uVar16 = iVar21 * 4" identifier = (binary_expression "iVar21 * 4" identifier * number_literal)) ;) (expression_statement "pcVar13 = pcVar20;" (assignment_expression "pcVar13 = pcVar20" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 < 10)" ( (binary_expression "param_4 < 10" identifier < number_literal) )) ;) })) (expression_statement "cVar18 = (char)uVar16;" (assignment_expression "cVar18 = (char)uVar16" identifier = (cast_expression "(char)uVar16" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }" if (parenthesized_expression "(iVar14 == iVar19)" ( (binary_expression "iVar14 == iVar19" identifier == identifier) )) (compound_statement "{\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }" { (if_statement "if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }" if (parenthesized_expression "(pcVar13[1] == ')')" ( (binary_expression "pcVar13[1] == ')'" (subscript_expression "pcVar13[1]" identifier [ number_literal ]) == (char_literal "')'" ' character ')) )) (compound_statement "{\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }" { (expression_statement "*param_3 = iVar21;" (assignment_expression "*param_3 = iVar21" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "(*(code *)puVar15)(param_1);" (call_expression "(*(code *)puVar15)(param_1)" (parenthesized_expression "(*(code *)puVar15)" ( (pointer_expression "*(code *)puVar15" * (cast_expression "(code *)puVar15" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) }) (else_clause "else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }" else (compound_statement "{\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }" { (expression_statement "iVar5 = 0x1c;" (assignment_expression "iVar5 = 0x1c" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (goto_statement "goto LAB_0002ae20;" goto statement_identifier ;) })) })) })) (expression_statement "iVar5 = 0x1c;" (assignment_expression "iVar5 = 0x1c" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000afd08)(param_1);" (call_expression "(*(code *)PTR_free_000afd08)(param_1)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) }) (else_clause "else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }" else (compound_statement "{\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }" { (expression_statement "iVar5 = 0x1d;" (assignment_expression "iVar5 = 0x1d" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_20);" (call_expression "(*(code *)PTR_free_000afd08)(local_20)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_20)" ( identifier ))) ;) }))) })) }))) (labeled_statement "LAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }" if (parenthesized_expression "(local_1c == *(int *)puVar2)" ( (binary_expression "local_1c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar24 = ftp_type;" (assignment_expression "pcVar24 = ftp_type" identifier = identifier) ;) (expression_statement "iVar6 = local_1c;" (assignment_expression "iVar6 = local_1c" identifier = identifier) ;) (expression_statement "puVar15 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar15 = PTR___stack_chk_fail_000afbd4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_70 = puVar15 + 0x8c558;" (assignment_expression "puStack_70 = puVar15 + 0x8c558" identifier = (binary_expression "puVar15 + 0x8c558" identifier + number_literal)) ;) (expression_statement "puStack_4c = puVar2;" (assignment_expression "puStack_4c = puVar2" identifier = identifier) ;) (expression_statement "piVar22 = *(int **)(puVar15 + 0x84d64);" (assignment_expression "piVar22 = *(int **)(puVar15 + 0x84d64)" identifier = (pointer_expression "*(int **)(puVar15 + 0x84d64)" * (cast_expression "(int **)(puVar15 + 0x84d64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x84d64)" ( (binary_expression "puVar15 + 0x84d64" identifier + number_literal) ))))) ;) (expression_statement "acStack_58[1] = 0;" (assignment_expression "acStack_58[1] = 0" (subscript_expression "acStack_58[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_54 = *piVar22;" (assignment_expression "iStack_54 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "acStack_58[0] = cVar18;" (assignment_expression "acStack_58[0] = cVar18" (subscript_expression "acStack_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_50 = iVar5;" (assignment_expression "iStack_50 = iVar5" identifier = identifier) ;) (expression_statement "piStack_48 = param_3;" (assignment_expression "piStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar24;" (assignment_expression "pcStack_44 = pcVar24" identifier = identifier) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58)" identifier = (call_expression "FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58)" identifier (argument_list "(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58)" ( (binary_expression "*(int *)(puVar15 + 0x84594) + -0x15d4" (pointer_expression "*(int *)(puVar15 + 0x84594)" * (cast_expression "(int *)(puVar15 + 0x84594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x84594)" ( (binary_expression "puVar15 + 0x84594" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);" (assignment_expression "uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7)" identifier = (call_expression "(**(code **)(puStack_70 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(puStack_70 + -0x77c8))" ( (pointer_expression "**(code **)(puStack_70 + -0x77c8)" * (pointer_expression "*(code **)(puStack_70 + -0x77c8)" * (cast_expression "(code **)(puStack_70 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x77c8)" ( (binary_expression "puStack_70 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(puStack_70 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(puStack_70 + -0x7fc8)" * (cast_expression "(int *)(puStack_70 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_70 + -0x7fc8)" ( (binary_expression "puStack_70 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = fd_write(iVar6,uVar7,uVar3);" (assignment_expression "iVar5 = fd_write(iVar6,uVar7,uVar3)" identifier = (call_expression "fd_write(iVar6,uVar7,uVar3)" identifier (argument_list "(iVar6,uVar7,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }" { (expression_statement "(**(code **)(puStack_70 + -0x7728))(uVar7);" (call_expression "(**(code **)(puStack_70 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }" { (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_5c);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_5c)" identifier = (call_expression "ftp_response(iVar6,&pcStack_5c)" identifier (argument_list "(iVar6,&pcStack_5c)" ( identifier , (pointer_expression "&pcStack_5c" & identifier) )))) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }" { (if_statement "if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }" if (parenthesized_expression "(*pcStack_5c == '2')" ( (binary_expression "*pcStack_5c == '2'" (pointer_expression "*pcStack_5c" * identifier) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }" { (expression_statement "iStack_64 = iVar5;" (assignment_expression "iStack_64 = iVar5" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = iStack_64;" (assignment_expression "iVar5 = iStack_64" identifier = identifier) ;) }) (else_clause "else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }" else (compound_statement "{\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }" { (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" ( (pointer_expression "**(code **)(puStack_70 + -0x7728)" * (pointer_expression "*(code **)(puStack_70 + -0x7728)" * (cast_expression "(code **)(puStack_70 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x7728)" ( (binary_expression "puStack_70 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" identifier = number_literal) ;) }))) })) }))) (if_statement "if (iStack_54 == *piVar22) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_54 == *piVar22)" ( (binary_expression "iStack_54 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(puStack_70 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(puStack_70 + -0x785c)" identifier = (pointer_expression "*(code **)(puStack_70 + -0x785c)" * (cast_expression "(code **)(puStack_70 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_70 + -0x785c)" ( (binary_expression "puStack_70 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_cwd;" (assignment_expression "pcVar25 = ftp_cwd" identifier = identifier) ;) (expression_statement "iVar5 = iStack_54;" (assignment_expression "iVar5 = iStack_54" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_b0 = pcVar24 + 0x8c410;" (assignment_expression "pcStack_b0 = pcVar24 + 0x8c410" identifier = (binary_expression "pcVar24 + 0x8c410" identifier + number_literal)) ;) (expression_statement "piVar23 = *(int **)(pcVar24 + 0x84c1c);" (assignment_expression "piVar23 = *(int **)(pcVar24 + 0x84c1c)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x84c1c)" * (cast_expression "(int **)(pcVar24 + 0x84c1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84c1c)" ( (binary_expression "pcVar24 + 0x84c1c" identifier + number_literal) ))))) ;) (expression_statement "iStack_9c = *piVar23;" (assignment_expression "iStack_9c = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "uStack_98 = uVar7;" (assignment_expression "uStack_98 = uVar7" identifier = identifier) ;) (expression_statement "piStack_94 = piVar22;" (assignment_expression "piStack_94 = piVar22" identifier = identifier) ;) (expression_statement "iStack_90 = iVar6;" (assignment_expression "iStack_90 = iVar6" identifier = identifier) ;) (expression_statement "pcStack_8c = pcVar25;" (assignment_expression "pcStack_8c = pcVar25" identifier = identifier) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc)" identifier (argument_list "(*(int *)(pcVar24 + 0x8444c) + -0x15cc)" ( (binary_expression "*(int *)(pcVar24 + 0x8444c) + -0x15cc" (pointer_expression "*(int *)(pcVar24 + 0x8444c)" * (cast_expression "(int *)(pcVar24 + 0x8444c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x8444c)" ( (binary_expression "pcVar24 + 0x8444c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);" (assignment_expression "uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7)" identifier = (call_expression "(**(code **)(pcStack_b0 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_b0 + -0x77c8)" * (cast_expression "(code **)(pcStack_b0 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x77c8)" ( (binary_expression "pcStack_b0 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_b0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_b0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_b0 + -0x7fc8)" ( (binary_expression "pcStack_b0 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = fd_write(iVar5,uVar7,uVar3);" (assignment_expression "iVar6 = fd_write(iVar5,uVar7,uVar3)" identifier = (call_expression "fd_write(iVar5,uVar7,uVar3)" identifier (argument_list "(iVar5,uVar7,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_b0 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar6 = 0x2c;" (assignment_expression "iVar6 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = ftp_response(iVar5,&pcStack_a0);" (assignment_expression "iVar6 = ftp_response(iVar5,&pcStack_a0)" identifier = (call_expression "ftp_response(iVar5,&pcStack_a0)" identifier (argument_list "(iVar5,&pcStack_a0)" ( identifier , (pointer_expression "&pcStack_a0" & identifier) )))) ;) (if_statement "if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }" if (parenthesized_expression "(iVar6 == 7)" ( (binary_expression "iVar6 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }" { (if_statement "if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_a0 == '5')" ( (binary_expression "*pcStack_a0 == '5'" (pointer_expression "*pcStack_a0" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = 0xc;" (assignment_expression "iVar6 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" else (if_statement "if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_a0 == '2')" ( (binary_expression "*pcStack_a0 == '2'" (pointer_expression "*pcStack_a0" * identifier) == (char_literal "'2'" ' character ')) )) (compound_statement "{\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }" { (expression_statement "iStack_a4 = iVar6;" (assignment_expression "iStack_a4 = iVar6" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = iStack_a4;" (assignment_expression "iVar6 = iStack_a4" identifier = identifier) ;) }) (else_clause "else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" else (compound_statement "{\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" { (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" * (cast_expression "(code **)(pcStack_b0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x7728)" ( (binary_expression "pcStack_b0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = 0xe;" (assignment_expression "iVar6 = 0xe" identifier = number_literal) ;) }))))) })) }))) (if_statement "if (iStack_9c == *piVar23) {\n    return iVar6;\n  }" if (parenthesized_expression "(iStack_9c == *piVar23)" ( (binary_expression "iStack_9c == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(pcStack_b0 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_b0 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_b0 + -0x785c)" * (cast_expression "(code **)(pcStack_b0 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b0 + -0x785c)" ( (binary_expression "pcStack_b0 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_rest;" (assignment_expression "pcVar25 = ftp_rest" identifier = identifier) ;) (expression_statement "iVar6 = iStack_9c;" (assignment_expression "iVar6 = iStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_f0 = pcVar24 + 0x8c2b4;" (assignment_expression "pcStack_f0 = pcVar24 + 0x8c2b4" identifier = (binary_expression "pcVar24 + 0x8c2b4" identifier + number_literal)) ;) (expression_statement "piVar22 = *(int **)(pcVar24 + 0x84ac0);" (assignment_expression "piVar22 = *(int **)(pcVar24 + 0x84ac0)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x84ac0)" * (cast_expression "(int **)(pcVar24 + 0x84ac0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84ac0)" ( (binary_expression "pcVar24 + 0x84ac0" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = *piVar22;" (assignment_expression "iStack_dc = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "uStack_d8 = uVar7;" (assignment_expression "uStack_d8 = uVar7" identifier = identifier) ;) (expression_statement "piStack_d4 = piVar23;" (assignment_expression "piStack_d4 = piVar23" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar5;" (assignment_expression "iStack_d0 = iVar5" identifier = identifier) ;) (expression_statement "pcStack_cc = pcVar25;" (assignment_expression "pcStack_cc = pcVar25" identifier = identifier) ;) (expression_statement "uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);" (assignment_expression "uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4)" identifier = (call_expression "(**(code **)(pcVar24 + 0x8451c))(uVar3,param_4)" (parenthesized_expression "(**(code **)(pcVar24 + 0x8451c))" ( (pointer_expression "**(code **)(pcVar24 + 0x8451c)" * (pointer_expression "*(code **)(pcVar24 + 0x8451c)" * (cast_expression "(code **)(pcVar24 + 0x8451c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x8451c)" ( (binary_expression "pcVar24 + 0x8451c" identifier + number_literal) ))))) )) (argument_list "(uVar3,param_4)" ( identifier , identifier )))) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7)" identifier = (call_expression "FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7)" identifier (argument_list "(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7)" ( (binary_expression "*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8" (pointer_expression "*(int *)(pcStack_f0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_f0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_f0 + -0x7fc4)" ( (binary_expression "pcStack_f0 + -0x7fc4" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (expression_statement "uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);" (assignment_expression "uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7)" identifier = (call_expression "(**(code **)(pcStack_f0 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_f0 + -0x77c8)" * (cast_expression "(code **)(pcStack_f0 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x77c8)" ( (binary_expression "pcStack_f0 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_f0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_f0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_f0 + -0x7fc8)" ( (binary_expression "pcStack_f0 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = fd_write(iVar6,uVar7,uVar3);" (assignment_expression "iVar5 = fd_write(iVar6,uVar7,uVar3)" identifier = (call_expression "fd_write(iVar6,uVar7,uVar3)" identifier (argument_list "(iVar6,uVar7,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }" { (expression_statement "(**(code **)(pcStack_f0 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_f0 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_e0);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_e0)" identifier = (call_expression "ftp_response(iVar6,&pcStack_e0)" identifier (argument_list "(iVar6,&pcStack_e0)" ( identifier , (pointer_expression "&pcStack_e0" & identifier) )))) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }" { (if_statement "if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }" if (parenthesized_expression "(*pcStack_e0 == '3')" ( (binary_expression "*pcStack_e0 == '3'" (pointer_expression "*pcStack_e0" * identifier) == (char_literal "'3'" ' character ')) )) (compound_statement "{\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }" { (expression_statement "iStack_e4 = iVar5;" (assignment_expression "iStack_e4 = iVar5" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = iStack_e4;" (assignment_expression "iVar5 = iStack_e4" identifier = identifier) ;) }) (else_clause "else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }" else (compound_statement "{\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }" { (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" * (cast_expression "(code **)(pcStack_f0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x7728)" ( (binary_expression "pcStack_f0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) }))) })) }))) (if_statement "if (iStack_dc == *piVar22) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_dc == *piVar22)" ( (binary_expression "iStack_dc == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(pcStack_f0 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_f0 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_f0 + -0x785c)" * (cast_expression "(code **)(pcStack_f0 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_f0 + -0x785c)" ( (binary_expression "pcStack_f0 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_retr;" (assignment_expression "pcVar25 = ftp_retr" identifier = identifier) ;) (expression_statement "iVar5 = iStack_dc;" (assignment_expression "iVar5 = iStack_dc" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar23 = *(int **)(pcVar24 + 0x8496c);" (assignment_expression "piVar23 = *(int **)(pcVar24 + 0x8496c)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x8496c)" * (cast_expression "(int **)(pcVar24 + 0x8496c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x8496c)" ( (binary_expression "pcVar24 + 0x8496c" identifier + number_literal) ))))) ;) (expression_statement "iStack_11c = *piVar23;" (assignment_expression "iStack_11c = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "uStack_118 = uVar7;" (assignment_expression "uStack_118 = uVar7" identifier = identifier) ;) (expression_statement "piStack_114 = piVar22;" (assignment_expression "piStack_114 = piVar22" identifier = identifier) ;) (expression_statement "iStack_110 = iVar6;" (assignment_expression "iStack_110 = iVar6" identifier = identifier) ;) (expression_statement "pcStack_10c = pcVar25;" (assignment_expression "pcStack_10c = pcVar25" identifier = identifier) ;) (expression_statement "ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);" (assignment_expression "ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" identifier = (cast_expression "(char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" identifier (argument_list "(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" ( (binary_expression "*(int *)(pcVar24 + 0x8419c) + -0x15c0" (pointer_expression "*(int *)(pcVar24 + 0x8419c)" * (cast_expression "(int *)(pcVar24 + 0x8419c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x8419c)" ( (binary_expression "pcVar24 + 0x8419c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);" (assignment_expression "iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8)" identifier = (call_expression "(**(code **)(pcVar24 + 0x84998))(ppcVar8)" (parenthesized_expression "(**(code **)(pcVar24 + 0x84998))" ( (pointer_expression "**(code **)(pcVar24 + 0x84998)" * (pointer_expression "*(code **)(pcVar24 + 0x84998)" * (cast_expression "(code **)(pcVar24 + 0x84998)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84998)" ( (binary_expression "pcVar24 + 0x84998" identifier + number_literal) ))))) )) (argument_list "(ppcVar8)" ( identifier )))) ;) (expression_statement "uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);" (assignment_expression "uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x84198) + 0x40b8)" ( (binary_expression "*(int *)(pcVar24 + 0x84198) + 0x40b8" (pointer_expression "*(int *)(pcVar24 + 0x84198)" * (cast_expression "(int *)(pcVar24 + 0x84198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x84198)" ( (binary_expression "pcVar24 + 0x84198" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar17 = ppcVar8;" (assignment_expression "ppcVar17 = ppcVar8" identifier = identifier) ;) (expression_statement "iVar14 = fd_write(iVar5);" (assignment_expression "iVar14 = fd_write(iVar5)" identifier = (call_expression "fd_write(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (compound_statement "{\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))(ppcVar8);" (call_expression "(**(code **)(pcVar24 + 0x84a38))(ppcVar8)" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "(ppcVar8)" ( identifier ))) ;) (expression_statement "iVar14 = 0x2c;" (assignment_expression "iVar14 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar17 = &pcStack_120;" (assignment_expression "ppcVar17 = &pcStack_120" identifier = (pointer_expression "&pcStack_120" & identifier)) ;) (expression_statement "iVar14 = ftp_response(iVar5);" (assignment_expression "iVar14 = ftp_response(iVar5)" identifier = (call_expression "ftp_response(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }" if (parenthesized_expression "(iVar14 == 7)" ( (binary_expression "iVar14 == 7" identifier == number_literal) )) (compound_statement "{\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }" { (expression_statement "ppcVar17 = (char **)0x31;" (assignment_expression "ppcVar17 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_120 == '5')" ( (binary_expression "*pcStack_120 == '5'" (pointer_expression "*pcStack_120" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar14 = 0xc;" (assignment_expression "iVar14 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" else (if_statement "if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_120 == '1')" ( (binary_expression "*pcStack_120 == '1'" (pointer_expression "*pcStack_120" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcVar24 + 0x84a38))();\n      }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" else (compound_statement "{\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" { (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" ( (pointer_expression "**(code **)(pcVar24 + 0x84a38)" * (pointer_expression "*(code **)(pcVar24 + 0x84a38)" * (cast_expression "(code **)(pcVar24 + 0x84a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84a38)" ( (binary_expression "pcVar24 + 0x84a38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar14 = 0xe;" (assignment_expression "iVar14 = 0xe" identifier = number_literal) ;) }))))) })) }))) (if_statement "if (iStack_11c == *piVar23) {\n    return iVar14;\n  }" if (parenthesized_expression "(iStack_11c == *piVar23)" ( (binary_expression "iStack_11c == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n    return iVar14;\n  }" { (return_statement "return iVar14;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x84904);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x84904)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x84904)" * (cast_expression "(code **)(pcVar24 + 0x84904)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84904)" ( (binary_expression "pcVar24 + 0x84904" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = iStack_11c;" (assignment_expression "iVar14 = iStack_11c" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_198 = pcVar24 + 0x8c004;" (assignment_expression "pcStack_198 = pcVar24 + 0x8c004" identifier = (binary_expression "pcVar24 + 0x8c004" identifier + number_literal)) ;) (expression_statement "puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);" (assignment_expression "puStack_188 = *(undefined4 **)(pcVar24 + 0x84810)" identifier = (pointer_expression "*(undefined4 **)(pcVar24 + 0x84810)" * (cast_expression "(undefined4 **)(pcVar24 + 0x84810)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84810)" ( (binary_expression "pcVar24 + 0x84810" identifier + number_literal) ))))) ;) (expression_statement "pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);" (assignment_expression "pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20)" identifier = (cast_expression "(byte *)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pbStack_184 = pbStack_138;" (assignment_expression "pbStack_184 = pbStack_138" identifier = identifier) ;) (expression_statement "pcStack_17c = (char *)*puStack_188;" (assignment_expression "pcStack_17c = (char *)*puStack_188" identifier = (cast_expression "(char *)*puStack_188" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_188" * identifier))) ;) (expression_statement "*pbStack_138 = 0;" (assignment_expression "*pbStack_138 = 0" (pointer_expression "*pbStack_138" * identifier) = number_literal) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "ppcStack_178 = ppcVar8;" (assignment_expression "ppcStack_178 = ppcVar8" identifier = identifier) ;) (expression_statement "piStack_174 = piVar23;" (assignment_expression "piStack_174 = piVar23" identifier = identifier) ;) (expression_statement "iStack_170 = iVar5;" (assignment_expression "iStack_170 = iVar5" identifier = identifier) ;) (expression_statement "pcStack_16c = param_1;" (assignment_expression "pcStack_16c = param_1" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }" { (expression_statement "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;" (assignment_expression "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0" identifier = (binary_expression "*(int *)(pcVar24 + 0x84040) + -0x15b0" (pointer_expression "*(int *)(pcVar24 + 0x84040)" * (cast_expression "(int *)(pcVar24 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x84040)" ( (binary_expression "pcVar24 + 0x84040" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" else (if_statement "if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0')" ( (binary_expression "*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0'" (pointer_expression "*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b)" * (cast_expression "(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x8405c) + 0x16b)" ( (binary_expression "*(int *)(pcVar24 + 0x8405c) + 0x16b" (pointer_expression "*(int *)(pcVar24 + 0x8405c)" * (cast_expression "(int *)(pcVar24 + 0x8405c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x8405c)" ( (binary_expression "pcVar24 + 0x8405c" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }" { (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8" identifier = (binary_expression "*(int *)(pcVar24 + 0x84040) + -0x15b8" (pointer_expression "*(int *)(pcVar24 + 0x84040)" * (cast_expression "(int *)(pcVar24 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x84040)" ( (binary_expression "pcVar24 + 0x84040" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" else (compound_statement "{\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" { (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (expression_statement "debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);" (call_expression "debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8)" identifier (argument_list "(*(int *)(pcVar24 + 0x84040) + -0x15a8)" ( (binary_expression "*(int *)(pcVar24 + 0x84040) + -0x15a8" (pointer_expression "*(int *)(pcVar24 + 0x84040)" * (cast_expression "(int *)(pcVar24 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x84040)" ( (binary_expression "pcVar24 + 0x84040" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8" identifier = (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" * (cast_expression "(int *)(pcStack_198 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc4)" ( (binary_expression "pcStack_198 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) }))))) (expression_statement "iVar6 = *(int *)(pcStack_198 + -0x7c70);" (assignment_expression "iVar6 = *(int *)(pcStack_198 + -0x7c70)" identifier = (pointer_expression "*(int *)(pcStack_198 + -0x7c70)" * (cast_expression "(int *)(pcStack_198 + -0x7c70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7c70)" ( (binary_expression "pcStack_198 + -0x7c70" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);" (assignment_expression "uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc8)" * (cast_expression "(int *)(pcStack_198 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc8)" ( (binary_expression "pcStack_198 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);" (assignment_expression "uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38)" identifier = (pointer_expression "*(undefined4 *)(pcStack_198 + -0x7d38)" * (cast_expression "(undefined4 *)(pcStack_198 + -0x7d38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7d38)" ( (binary_expression "pcStack_198 + -0x7d38" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8" identifier = (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" * (cast_expression "(int *)(pcStack_198 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc4)" ( (binary_expression "pcStack_198 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);" do (compound_statement "{\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  }" { (while_statement "while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" { (expression_statement "ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);" (assignment_expression "ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17)" identifier = (cast_expression "(char **)FUN_00029120(iVar5,ppcVar17)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(iVar5,ppcVar17)" identifier (argument_list "(iVar5,ppcVar17)" ( identifier , identifier ))))) ;) (expression_statement "puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);" (assignment_expression "puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_198 + -0x77c8))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_198 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_198 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_198 + -0x77c8)" * (cast_expression "(code **)(pcStack_198 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x77c8)" ( (binary_expression "pcStack_198 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar9)" ( identifier ))))) ;) (expression_statement "ppcVar8 = ppcVar9;" (assignment_expression "ppcVar8 = ppcVar9" identifier = identifier) ;) (expression_statement "uStack_1a0 = uVar26;" (assignment_expression "uStack_1a0 = uVar26" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(iVar14);" (assignment_expression "iVar5 = fd_write(iVar14)" identifier = (call_expression "fd_write(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (if_statement "if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }" { (expression_statement "(**(code **)(pcStack_198 + -0x7728))(ppcVar9);" (call_expression "(**(code **)(pcStack_198 + -0x7728))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_198 + -0x7728)" * (pointer_expression "*(code **)(pcStack_198 + -0x7728)" * (cast_expression "(code **)(pcStack_198 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x7728)" ( (binary_expression "pcStack_198 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar9)" ( identifier ))) ;) (expression_statement "iVar11 = 0x2c;" (assignment_expression "iVar11 = 0x2c" identifier = number_literal) ;) (goto_statement "goto LAB_0002b57c;" goto statement_identifier ;) })) (expression_statement "ppcVar9 = (char **)(iVar19 + 1);" (assignment_expression "ppcVar9 = (char **)(iVar19 + 1)" identifier = (cast_expression "(char **)(iVar19 + 1)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 1)" ( (binary_expression "iVar19 + 1" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_198 + -0x7728))();" (call_expression "(**(code **)(pcStack_198 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_198 + -0x7728)" * (pointer_expression "*(code **)(pcStack_198 + -0x7728)" * (cast_expression "(code **)(pcStack_198 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x7728)" ( (binary_expression "pcStack_198 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar8 = &pcStack_180;" (assignment_expression "ppcVar8 = &pcStack_180" identifier = (pointer_expression "&pcStack_180" & identifier)) ;) (expression_statement "iVar11 = ftp_response(iVar14);" (assignment_expression "iVar11 = ftp_response(iVar14)" identifier = (call_expression "ftp_response(iVar14)" identifier (argument_list "(iVar14)" ( identifier )))) ;) (expression_statement "iVar5 = iVar21;" (assignment_expression "iVar5 = iVar21" identifier = identifier) ;) (if_statement "if (iVar11 != 7) break;" if (parenthesized_expression "(iVar11 != 7)" ( (binary_expression "iVar11 != 7" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppcVar8 = (char **)0x31;" (assignment_expression "ppcVar8 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_180 == '5')" ( (binary_expression "*pcStack_180 == '5'" (pointer_expression "*pcStack_180" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0xc;" (assignment_expression "iVar11 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" else (if_statement "if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_180 == '1')" ( (binary_expression "*pcStack_180 == '1'" (pointer_expression "*pcStack_180" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }" { (expression_statement "*pbStack_184 = (byte)iVar19 ^ 1;" (assignment_expression "*pbStack_184 = (byte)iVar19 ^ 1" (pointer_expression "*pbStack_184" * identifier) = (binary_expression "(byte)iVar19 ^ 1" (cast_expression "(byte)iVar19" ( (type_descriptor "byte" type_identifier) ) identifier) ^ number_literal)) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" else (compound_statement "{\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0xe;" (assignment_expression "iVar11 = 0xe" identifier = number_literal) ;) }))))) (expression_statement "iStack_18c = iVar11;" (assignment_expression "iStack_18c = iVar11" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_198 + -0x7728))();" (call_expression "(**(code **)(pcStack_198 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_198 + -0x7728)" * (pointer_expression "*(code **)(pcStack_198 + -0x7728)" * (cast_expression "(code **)(pcStack_198 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x7728)" ( (binary_expression "pcStack_198 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_180 = (char *)0x0;" (assignment_expression "pcStack_180 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar11 = iStack_18c;" (assignment_expression "iVar11 = iStack_18c" identifier = identifier) ;) (if_statement "if (param_4 != 0) goto LAB_0002b570;" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002b570;" goto statement_identifier ;)) (if_statement "if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;" if (parenthesized_expression "((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))" ( (binary_expression "(ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1)" (parenthesized_expression "(ppcVar9 != (char **)&DAT_00000001)" ( (binary_expression "ppcVar9 != (char **)&DAT_00000001" identifier != (cast_expression "(char **)&DAT_00000001" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000001" & identifier))) )) || (parenthesized_expression "(bVar1 = iVar19 != 0, iVar19 = 1, bVar1)" ( (comma_expression "bVar1 = iVar19 != 0, iVar19 = 1, bVar1" (assignment_expression "bVar1 = iVar19 != 0" identifier = (binary_expression "iVar19 != 0" identifier != number_literal)) , (comma_expression "iVar19 = 1, bVar1" (assignment_expression "iVar19 = 1" identifier = number_literal) , identifier)) ))) )) (goto_statement "goto LAB_0002b57c;" goto statement_identifier ;)) })) (if_statement "if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }" { (labeled_statement "LAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }" statement_identifier : (if_statement "if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }" if (parenthesized_expression "((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))" ( (binary_expression "(ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')" (parenthesized_expression "(ppcVar9 == (char **)&DAT_00000001)" ( (binary_expression "ppcVar9 == (char **)&DAT_00000001" identifier == (cast_expression "(char **)&DAT_00000001" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000001" & identifier))) )) && (parenthesized_expression "(*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')" ( (binary_expression "*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'" (pointer_expression "*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" * (cast_expression "(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fa8) + 0x16b" (pointer_expression "*(int *)(pcStack_198 + -0x7fa8)" * (cast_expression "(int *)(pcStack_198 + -0x7fa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fa8)" ( (binary_expression "pcStack_198 + -0x7fa8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }" { (expression_statement "iStack_18c = iVar11;" (assignment_expression "iStack_18c = iVar11" identifier = identifier) ;) (expression_statement "debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);" (call_expression "debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590)" identifier (argument_list "(*(int *)(pcStack_198 + -0x7fc4) + -0x1590)" ( (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x1590" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" * (cast_expression "(int *)(pcStack_198 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_198 + -0x7fc4)" ( (binary_expression "pcStack_198 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar11 = iStack_18c;" (assignment_expression "iVar11 = iStack_18c" identifier = identifier) ;) }))) (break_statement "break;" break ;) })) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "(ppcVar9 == (char **)&DAT_00000001)" ( (binary_expression "ppcVar9 == (char **)&DAT_00000001" identifier == (cast_expression "(char **)&DAT_00000001" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000001" & identifier))) )) ;) (labeled_statement "LAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }" statement_identifier : (if_statement "if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }" if (parenthesized_expression "(pcStack_17c == (char *)*puStack_188)" ( (binary_expression "pcStack_17c == (char *)*puStack_188" identifier == (cast_expression "(char *)*puStack_188" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_188" * identifier))) )) (compound_statement "{\n    return iVar11;\n  }" { (return_statement "return iVar11;" return identifier ;) }))) (expression_statement "pcVar24 = *(code **)(pcStack_198 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_198 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_198 + -0x785c)" * (cast_expression "(code **)(pcStack_198 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_198 + -0x785c)" ( (binary_expression "pcStack_198 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_syst;" (assignment_expression "pcVar25 = ftp_syst" identifier = identifier) ;) (expression_statement "pcVar13 = pcStack_17c;" (assignment_expression "pcVar13 = pcStack_17c" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_1e0 = pcVar24 + 0x8bd8c;" (assignment_expression "pcStack_1e0 = pcVar24 + 0x8bd8c" identifier = (binary_expression "pcVar24 + 0x8bd8c" identifier + number_literal)) ;) (expression_statement "piVar22 = *(int **)(pcVar24 + 0x84598);" (assignment_expression "piVar22 = *(int **)(pcVar24 + 0x84598)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x84598)" * (cast_expression "(int **)(pcVar24 + 0x84598)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84598)" ( (binary_expression "pcVar24 + 0x84598" identifier + number_literal) ))))) ;) (expression_statement "iStack_1d4 = *piVar22;" (assignment_expression "iStack_1d4 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "ppcStack_1d0 = ppcVar9;" (assignment_expression "ppcStack_1d0 = ppcVar9" identifier = identifier) ;) (expression_statement "iStack_1cc = iVar19;" (assignment_expression "iStack_1cc = iVar19" identifier = identifier) ;) (expression_statement "iStack_1c8 = iVar14;" (assignment_expression "iStack_1c8 = iVar14" identifier = identifier) ;) (expression_statement "iStack_1c4 = iVar6 + -0x6ee0;" (assignment_expression "iStack_1c4 = iVar6 + -0x6ee0" identifier = (binary_expression "iVar6 + -0x6ee0" identifier + number_literal)) ;) (expression_statement "iStack_1c0 = iVar21;" (assignment_expression "iStack_1c0 = iVar21" identifier = identifier) ;) (expression_statement "ppcStack_1bc = ppcVar17;" (assignment_expression "ppcStack_1bc = ppcVar17" identifier = identifier) ;) (expression_statement "uStack_1b8 = uVar7;" (assignment_expression "uStack_1b8 = uVar7" identifier = identifier) ;) (expression_statement "pcStack_1b4 = pcVar25;" (assignment_expression "pcStack_1b4 = pcVar25" identifier = identifier) ;) (expression_statement "ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);" (assignment_expression "ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" identifier = (cast_expression "(char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" identifier (argument_list "(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" ( (binary_expression "*(int *)(pcVar24 + 0x83dc8) + -0x157c" (pointer_expression "*(int *)(pcVar24 + 0x83dc8)" * (cast_expression "(int *)(pcVar24 + 0x83dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x83dc8)" ( (binary_expression "pcVar24 + 0x83dc8" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);" (assignment_expression "uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x77c8)" * (cast_expression "(code **)(pcStack_1e0 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x77c8)" ( (binary_expression "pcStack_1e0 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar9)" ( identifier )))) ;) (expression_statement "uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc8)" ( (binary_expression "pcStack_1e0 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar17 = ppcVar9;" (assignment_expression "ppcVar17 = ppcVar9" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(pcVar13,ppcVar9,uVar7);" (assignment_expression "iVar5 = fd_write(pcVar13,ppcVar9,uVar7)" identifier = (call_expression "fd_write(pcVar13,ppcVar9,uVar7)" identifier (argument_list "(pcVar13,ppcVar9,uVar7)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar9)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))();" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar17 = &pcStack_1d8;" (assignment_expression "ppcVar17 = &pcStack_1d8" identifier = (pointer_expression "&pcStack_1d8" & identifier)) ;) (expression_statement "iVar5 = ftp_response(pcVar13);" (assignment_expression "iVar5 = ftp_response(pcVar13)" identifier = (call_expression "ftp_response(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier )))) ;) (expression_statement "pcVar20 = pcStack_1d8;" (assignment_expression "pcVar20 = pcStack_1d8" identifier = identifier) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }" { (if_statement "if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" if (parenthesized_expression "(*pcStack_1d8 == '5')" ( (binary_expression "*pcStack_1d8 == '5'" (pointer_expression "*pcStack_1d8" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }" { (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_1d8)" ( identifier ))) ;) (expression_statement "pcVar13 = pcStack_1d8;" (assignment_expression "pcVar13 = pcStack_1d8" identifier = identifier) ;) }) (else_clause "else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" else (compound_statement "{\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" { (expression_statement "iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);" (assignment_expression "iVar6 = *(int *)(pcStack_1e0 + -0x7fc8)" identifier = (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc8)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc8)" ( (binary_expression "pcStack_1e0 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);" (assignment_expression "uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x794c)" * (cast_expression "(code **)(pcStack_1e0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x794c)" ( (binary_expression "pcStack_1e0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "(pcStack_1d8)" ( identifier )))) ;) (expression_statement "(**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);" (call_expression "(**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7888)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7888)" * (cast_expression "(code **)(pcStack_1e0 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7888)" ( (binary_expression "pcStack_1e0 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcVar20,iVar6 + 0x4a48)" ( identifier , (binary_expression "iVar6 + 0x4a48" identifier + number_literal) ))) ;) (expression_statement "ppcVar17 = (char **)(iVar6 + 0x4a48);" (assignment_expression "ppcVar17 = (char **)(iVar6 + 0x4a48)" identifier = (cast_expression "(char **)(iVar6 + 0x4a48)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x4a48)" ( (binary_expression "iVar6 + 0x4a48" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);" (assignment_expression "pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0)" identifier = (cast_expression "(char *)(**(code **)(pcStack_1e0 + -0x7888))(0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_1e0 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7888)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7888)" * (cast_expression "(code **)(pcStack_1e0 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7888)" ( (binary_expression "pcStack_1e0 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "*puVar10 = 2;" (assignment_expression "*puVar10 = 2" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (if_statement "if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }" { (labeled_statement "LAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;" statement_identifier : (expression_statement "*ppcVar8 = (char *)0x5;" (assignment_expression "*ppcVar8 = (char *)0x5" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }" else (compound_statement "{\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            *ppcVar8 = (char *)0x1;\n          }" { (expression_statement "*ppcVar8 = (char *)0x1;" (assignment_expression "*ppcVar8 = (char *)0x1" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }" else (compound_statement "{\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }" { (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" ( identifier , (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }" { (expression_statement "iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_1e0 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);" (assignment_expression "pcVar24 = *(code **)(pcStack_1e0 + -0x7db0)" identifier = (pointer_expression "*(code **)(pcStack_1e0 + -0x7db0)" * (cast_expression "(code **)(pcStack_1e0 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7db0)" ( (binary_expression "pcStack_1e0 + -0x7db0" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar8 = (char *)0x0;" (assignment_expression "*ppcVar8 = (char *)0x0" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar17 = (char **)(iVar6 + -0x1568);" (assignment_expression "ppcVar17 = (char **)(iVar6 + -0x1568)" identifier = (cast_expression "(char **)(iVar6 + -0x1568)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + -0x1568)" ( (binary_expression "iVar6 + -0x1568" identifier + number_literal) )))) ;) (expression_statement "iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);" (assignment_expression "iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11)" identifier = (call_expression "(*pcVar24)(uVar7,ppcVar17,0x11)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(uVar7,ppcVar17,0x11)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                *puVar10 = 0;\n              }" { (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) }) (else_clause "else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }" else (compound_statement "{\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7db0))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7db0)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7db0)" * (cast_expression "(code **)(pcStack_1e0 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7db0)" ( (binary_expression "pcStack_1e0 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(uVar7,ppcVar17,0x29)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  *puVar10 = 1;\n                }" { (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) })) }))) }) (else_clause "else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }" else (compound_statement "{\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    *ppcVar8 = (char *)0x3;\n                  }" { (expression_statement "*ppcVar8 = (char *)0x3;" (assignment_expression "*ppcVar8 = (char *)0x3" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }" else (compound_statement "{\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }" { (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" identifier = (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" ( (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" ( (binary_expression "pcStack_1e0 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" identifier = (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" * (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" ( (binary_expression "pcStack_1e0 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) goto LAB_0002b8d8;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002b8d8;" goto statement_identifier ;)) (expression_statement "*ppcVar8 = (char *)0x4;" (assignment_expression "*ppcVar8 = (char *)0x4" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_0002b804;" goto statement_identifier ;) })) })) (expression_statement "*ppcVar8 = (char *)0x2;" (assignment_expression "*ppcVar8 = (char *)0x2" (pointer_expression "*ppcVar8" * identifier) = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) }))) (labeled_statement "LAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);" statement_identifier : (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" * (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" * (cast_expression "(code **)(pcStack_1e0 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x7728)" ( (binary_expression "pcStack_1e0 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_1d8)" ( identifier ))) ;) }))) })) }))) (if_statement "if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_1d4 == *piVar22)" ( (binary_expression "iStack_1d4 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar24 = *(code **)(pcStack_1e0 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_1e0 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_1e0 + -0x785c)" * (cast_expression "(code **)(pcStack_1e0 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e0 + -0x785c)" ( (binary_expression "pcStack_1e0 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_pwd;" (assignment_expression "pcVar25 = ftp_pwd" identifier = identifier) ;) (expression_statement "iVar6 = iStack_1d4;" (assignment_expression "iVar6 = iStack_1d4" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_220 = pcVar24 + 0x8ba8c;" (assignment_expression "pcStack_220 = pcVar24 + 0x8ba8c" identifier = (binary_expression "pcVar24 + 0x8ba8c" identifier + number_literal)) ;) (expression_statement "piVar23 = *(int **)(pcVar24 + 0x84298);" (assignment_expression "piVar23 = *(int **)(pcVar24 + 0x84298)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x84298)" * (cast_expression "(int **)(pcVar24 + 0x84298)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84298)" ( (binary_expression "pcVar24 + 0x84298" identifier + number_literal) ))))) ;) (expression_statement "iStack_214 = *piVar23;" (assignment_expression "iStack_214 = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "iStack_20c = iVar5;" (assignment_expression "iStack_20c = iVar5" identifier = identifier) ;) (expression_statement "piStack_208 = piVar22;" (assignment_expression "piStack_208 = piVar22" identifier = identifier) ;) (expression_statement "pcStack_204 = pcVar13;" (assignment_expression "pcStack_204 = pcVar13" identifier = identifier) ;) (expression_statement "puStack_200 = puVar10;" (assignment_expression "puStack_200 = puVar10" identifier = identifier) ;) (expression_statement "pcStack_1fc = pcVar25;" (assignment_expression "pcStack_1fc = pcVar25" identifier = identifier) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0)" identifier (argument_list "(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0)" ( (binary_expression "*(int *)(pcVar24 + 0x83ac8) + -0x1500" (pointer_expression "*(int *)(pcVar24 + 0x83ac8)" * (cast_expression "(int *)(pcVar24 + 0x83ac8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x83ac8)" ( (binary_expression "pcVar24 + 0x83ac8" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);" (assignment_expression "puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7)" identifier = (cast_expression "(undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_220 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_220 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_220 + -0x77c8)" * (cast_expression "(code **)(pcStack_220 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x77c8)" ( (binary_expression "pcStack_220 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))))) ;) (expression_statement "uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_220 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_220 + -0x7fc8)" * (cast_expression "(int *)(pcStack_220 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_220 + -0x7fc8)" ( (binary_expression "pcStack_220 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = fd_write(iVar6,uVar7);" (assignment_expression "iVar5 = fd_write(iVar6,uVar7)" identifier = (call_expression "fd_write(iVar6,uVar7)" identifier (argument_list "(iVar6,uVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_220 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" { (expression_statement "(**(code **)(pcStack_220 + -0x7728))();" (call_expression "(**(code **)(pcStack_220 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_218);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_218)" identifier = (call_expression "ftp_response(iVar6,&pcStack_218)" identifier (argument_list "(iVar6,&pcStack_218)" ( identifier , (pointer_expression "&pcStack_218" & identifier) )))) ;) (if_statement "if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }" { (expression_statement "iVar6 = *(int *)(pcStack_220 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_220 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_220 + -0x7fc4)" * (cast_expression "(int *)(pcStack_220 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_220 + -0x7fc4)" ( (binary_expression "pcStack_220 + -0x7fc4" identifier + number_literal) ))))) ;) (if_statement "if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }" if (parenthesized_expression "(*pcStack_218 != '5')" ( (binary_expression "*pcStack_218 != '5'" (pointer_expression "*pcStack_218" * identifier) != (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }" { (expression_statement "(**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);" (call_expression "(**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7888)" * (pointer_expression "*(code **)(pcStack_220 + -0x7888)" * (cast_expression "(code **)(pcStack_220 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7888)" ( (binary_expression "pcStack_220 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcStack_218,iVar6 + -0x3d0)" ( identifier , (binary_expression "iVar6 + -0x3d0" identifier + number_literal) ))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);" (assignment_expression "iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0)" identifier = (call_expression "(**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7888)" * (pointer_expression "*(code **)(pcStack_220 + -0x7888)" * (cast_expression "(code **)(pcStack_220 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7888)" ( (binary_expression "pcStack_220 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(0,iVar6 + -0x3d0)" ( number_literal , (binary_expression "iVar6 + -0x3d0" identifier + number_literal) )))) ;) (if_statement "if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }" { (expression_statement "(**(code **)(pcStack_220 + -0x7728))(*ppcVar17);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(*ppcVar17)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(*ppcVar17)" ( (pointer_expression "*ppcVar17" * identifier) ))) ;) (expression_statement "pcVar24 = *(code **)(pcStack_220 + -0x7fa4);" (assignment_expression "pcVar24 = *(code **)(pcStack_220 + -0x7fa4)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x7fa4)" * (cast_expression "(code **)(pcStack_220 + -0x7fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7fa4)" ( (binary_expression "pcStack_220 + -0x7fa4" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar17 = (char *)0x0;" (assignment_expression "*ppcVar17 = (char *)0x0" (pointer_expression "*ppcVar17" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = (char *)(*pcVar24)(iVar6);" (assignment_expression "pcVar13 = (char *)(*pcVar24)(iVar6)" identifier = (cast_expression "(char *)(*pcVar24)(iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar24)(iVar6)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "pcVar24 = *(code **)(pcStack_220 + -0x7728);" (assignment_expression "pcVar24 = *(code **)(pcStack_220 + -0x7728)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar17 = pcVar13;" (assignment_expression "*ppcVar17 = pcVar13" (pointer_expression "*ppcVar17" * identifier) = identifier) ;) (expression_statement "(*pcVar24)(pcStack_218);" (call_expression "(*pcVar24)(pcStack_218)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pcStack_218)" ( identifier ))) ;) (goto_statement "goto LAB_0002bae8;" goto statement_identifier ;) })) })) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_220 + -0x7728))(pcStack_218);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(pcStack_218)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_220 + -0x7728)" * (pointer_expression "*(code **)(pcStack_220 + -0x7728)" * (cast_expression "(code **)(pcStack_220 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7728)" ( (binary_expression "pcStack_220 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_218)" ( identifier ))) ;) })) }))) (labeled_statement "LAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (iStack_214 == *piVar23) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_214 == *piVar23)" ( (binary_expression "iStack_214 == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar24 = *(code **)(pcStack_220 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_220 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x785c)" * (cast_expression "(code **)(pcStack_220 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x785c)" ( (binary_expression "pcStack_220 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = ftp_size;" (assignment_expression "pcVar25 = ftp_size" identifier = identifier) ;) (expression_statement "iVar14 = iStack_214;" (assignment_expression "iVar14 = iStack_214" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar22 = *(int **)(pcVar24 + 0x840f4);" (assignment_expression "piVar22 = *(int **)(pcVar24 + 0x840f4)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x840f4)" * (cast_expression "(int **)(pcVar24 + 0x840f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x840f4)" ( (binary_expression "pcVar24 + 0x840f4" identifier + number_literal) ))))) ;) (expression_statement "iStack_254 = *piVar22;" (assignment_expression "iStack_254 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "iStack_250 = iVar5;" (assignment_expression "iStack_250 = iVar5" identifier = identifier) ;) (expression_statement "piStack_24c = piVar23;" (assignment_expression "piStack_24c = piVar23" identifier = identifier) ;) (expression_statement "iStack_248 = iVar6;" (assignment_expression "iStack_248 = iVar6" identifier = identifier) ;) (expression_statement "ppcStack_244 = ppcVar17;" (assignment_expression "ppcStack_244 = ppcVar17" identifier = identifier) ;) (expression_statement "ppcStack_240 = ppcVar8;" (assignment_expression "ppcStack_240 = ppcVar8" identifier = identifier) ;) (expression_statement "pcStack_23c = pcVar25;" (assignment_expression "pcStack_23c = pcVar25" identifier = identifier) ;) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc)" identifier (argument_list "(*(int *)(pcVar24 + 0x83924) + -0x14fc)" ( (binary_expression "*(int *)(pcVar24 + 0x83924) + -0x14fc" (pointer_expression "*(int *)(pcVar24 + 0x83924)" * (cast_expression "(int *)(pcVar24 + 0x83924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x83924)" ( (binary_expression "pcVar24 + 0x83924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);" (assignment_expression "uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7)" identifier = (call_expression "(**(code **)(pcVar24 + 0x84120))(uVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x84120))" ( (pointer_expression "**(code **)(pcVar24 + 0x84120)" * (pointer_expression "*(code **)(pcVar24 + 0x84120)" * (cast_expression "(code **)(pcVar24 + 0x84120)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84120)" ( (binary_expression "pcVar24 + 0x84120" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "iVar5 = fd_write(iVar14,uVar7,uVar3);" (assignment_expression "iVar5 = fd_write(iVar14,uVar7,uVar3)" identifier = (call_expression "fd_write(iVar14,uVar7,uVar3)" identifier (argument_list "(iVar14,uVar7,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar24 + 0x841c0))(uVar7);" (call_expression "(**(code **)(pcVar24 + 0x841c0))(uVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar24 + 0x841c0)" * (pointer_expression "*(code **)(pcVar24 + 0x841c0)" * (cast_expression "(code **)(pcVar24 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841c0)" ( (binary_expression "pcVar24 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "*(undefined4 *)((int)puVar12 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar12 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar12 + 4)" * (cast_expression "(undefined4 *)((int)puVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 4)" ( (binary_expression "(int)puVar12 + 4" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)puVar12 = 0;" (assignment_expression "*(undefined4 *)puVar12 = 0" (pointer_expression "*(undefined4 *)puVar12" * (cast_expression "(undefined4 *)puVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x841c0))();" (call_expression "(**(code **)(pcVar24 + 0x841c0))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar24 + 0x841c0)" * (pointer_expression "*(code **)(pcVar24 + 0x841c0)" * (cast_expression "(code **)(pcVar24 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841c0)" ( (binary_expression "pcVar24 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar14,&pcStack_258);" (assignment_expression "iVar5 = ftp_response(iVar14,&pcStack_258)" identifier = (call_expression "ftp_response(iVar14,&pcStack_258)" identifier (argument_list "(iVar14,&pcStack_258)" ( identifier , (pointer_expression "&pcStack_258" & identifier) )))) ;) (expression_statement "pcVar13 = pcStack_258;" (assignment_expression "pcVar13 = pcStack_258" identifier = identifier) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }" { (if_statement "if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" if (parenthesized_expression "(*pcStack_258 == '5')" ( (binary_expression "*pcStack_258 == '5'" (pointer_expression "*pcStack_258" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }" { (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x841c0);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x841c0)" * (cast_expression "(code **)(pcVar24 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841c0)" ( (binary_expression "pcVar24 + 0x841c0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" else (compound_statement "{\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" { (expression_statement "piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();" (assignment_expression "piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))()" identifier = (cast_expression "(int *)(**(code **)(pcVar24 + 0x84348))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x84348))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84348))" ( (pointer_expression "**(code **)(pcVar24 + 0x84348)" * (pointer_expression "*(code **)(pcVar24 + 0x84348)" * (cast_expression "(code **)(pcVar24 + 0x84348)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x84348)" ( (binary_expression "pcVar24 + 0x84348" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (expression_statement "uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);" (assignment_expression "uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10)" identifier = (call_expression "(**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10)" (parenthesized_expression "(**(code **)(pcVar24 + 0x841f4))" ( (pointer_expression "**(code **)(pcVar24 + 0x841f4)" * (pointer_expression "*(code **)(pcVar24 + 0x841f4)" * (cast_expression "(code **)(pcVar24 + 0x841f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841f4)" ( (binary_expression "pcVar24 + 0x841f4" identifier + number_literal) ))))) )) (argument_list "(pcVar13 + 4,0,10)" ( (binary_expression "pcVar13 + 4" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "iVar6 = *piVar23;" (assignment_expression "iVar6 = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "*puVar12 = uVar26;" (assignment_expression "*puVar12 = uVar26" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x841c0);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x841c0)" * (cast_expression "(code **)(pcVar24 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x841c0)" ( (binary_expression "pcVar24 + 0x841c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }" { (expression_statement "(*pcVar25)(pcStack_258);" (call_expression "(*pcVar25)(pcStack_258)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(pcStack_258)" ( identifier ))) ;) (goto_statement "goto LAB_0002bc24;" goto statement_identifier ;) })) }))) (expression_statement "(*pcVar25)(pcStack_258);" (call_expression "(*pcVar25)(pcStack_258)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(pcStack_258)" ( identifier ))) ;) })) (expression_statement "*(undefined4 *)((int)puVar12 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar12 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar12 + 4)" * (cast_expression "(undefined4 *)((int)puVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 4)" ( (binary_expression "(int)puVar12 + 4" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)puVar12 = 0;" (assignment_expression "*(undefined4 *)puVar12 = 0" (pointer_expression "*(undefined4 *)puVar12" * (cast_expression "(undefined4 *)puVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (labeled_statement "LAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (iStack_254 == *piVar22) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_254 == *piVar22)" ( (binary_expression "iStack_254 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x8408c);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x8408c)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x8408c)" * (cast_expression "(code **)(pcVar24 + 0x8408c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x8408c)" ( (binary_expression "pcVar24 + 0x8408c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iStack_254;" (assignment_expression "iVar5 = iStack_254" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar5 == 0) {\n    return 0x49;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0x49;\n  }" { (return_statement "return 0x49;" return number_literal ;) })) (expression_statement "iVar6 = (**(code **)(pcVar24 + 0x83e84))();" (assignment_expression "iVar6 = (**(code **)(pcVar24 + 0x83e84))()" identifier = (call_expression "(**(code **)(pcVar24 + 0x83e84))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x83e84))" ( (pointer_expression "**(code **)(pcVar24 + 0x83e84)" * (pointer_expression "*(code **)(pcVar24 + 0x83e84)" * (cast_expression "(code **)(pcVar24 + 0x83e84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x83e84)" ( (binary_expression "pcVar24 + 0x83e84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }" { (expression_statement "iVar6 = (int)*(char *)(iVar5 + 5);" (assignment_expression "iVar6 = (int)*(char *)(iVar5 + 5)" identifier = (cast_expression "(int)*(char *)(iVar5 + 5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar5 + 5)" * (cast_expression "(char *)(iVar5 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) )))))) ;) (if_statement "if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }" { (if_statement "if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }" if (parenthesized_expression "(iVar6 - 0x61U < 0x1a)" ( (binary_expression "iVar6 - 0x61U < 0x1a" (binary_expression "iVar6 - 0x61U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }" { (expression_statement "iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);" (assignment_expression "iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20)" identifier = (cast_expression "(int)(char)(*(char *)(iVar5 + 5) + -0x20)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(*(char *)(iVar5 + 5) + -0x20)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(*(char *)(iVar5 + 5) + -0x20)" ( (binary_expression "*(char *)(iVar5 + 5) + -0x20" (pointer_expression "*(char *)(iVar5 + 5)" * (cast_expression "(char *)(iVar5 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) )))) + number_literal) ))))) ;) })) (return_statement "return iVar6;" return identifier ;) })) })) (return_statement "return 0x49;" return number_literal ;) })))
(translation_unit (function_definition TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = 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 * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) < LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }))) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }))) })) }))) (labeled_statement statement_identifier : (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 (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 )))) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (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 (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 = (call_expression IDENT (argument_list ( (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 (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (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 (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 = (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 IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (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 (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (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) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (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 * (abstract_pointer_declarator *))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 ( ))) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (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 * (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_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) ;) (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)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (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 != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression 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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT != LIT)) , (comma_expression (assignment_expression IDENT = LIT) , IDENT)) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (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 (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 ( IDENT ))) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (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 == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 ( IDENT ))) ;) (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 = (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 (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 , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (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 (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (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 , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (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 (pointer_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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }))) }))) (labeled_statement statement_identifier : (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 ))) ;)) (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 ))) ;) }))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (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 (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 ( IDENT ))) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (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 , (binary_expression 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 ( LIT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 * 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 (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_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 ( IDENT ))) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 = (call_expression IDENT (argument_list ( (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 (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 IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) }) (else_clause else (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (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) ))))) ;) }) (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 ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * 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 + LIT) , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (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 ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (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 { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) })) (return_statement return IDENT ;) })) })) (return_statement return LIT ;) })))
(function_definition "int ftp_epsv(char *param_1,int *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char **ppcVar8;\n  char **ppcVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  int iVar14;\n  undefined *puVar15;\n  uint uVar16;\n  char cVar18;\n  char **ppcVar17;\n  int iVar19;\n  char *pcVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined8 uVar26;\n  char *pcStack_258;\n  int iStack_254;\n  int iStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  int iStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  int iStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  int iStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  undefined4 uStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  int iStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  int iStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  int iStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  int iStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *local_20;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);\n  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  uVar7 = uVar3;\n  iVar5 = fd_write(param_1,uVar3,uVar4);\n  cVar18 = (char)uVar7;\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }\n  pcVar24 = ftp_type;\n  iVar6 = local_1c;\n  puVar15 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar15 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar22 = *(int **)(puVar15 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar22;\n  acStack_58[0] = cVar18;\n  iStack_50 = iVar5;\n  piStack_48 = param_3;\n  pcStack_44 = pcVar24;\n  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);\n  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }\n  if (iStack_54 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puStack_70 + -0x785c);\n  pcVar25 = ftp_cwd;\n  iVar5 = iStack_54;\n  (*pcVar24)();\n  pcStack_b0 = pcVar24 + 0x8c410;\n  piVar23 = *(int **)(pcVar24 + 0x84c1c);\n  iStack_9c = *piVar23;\n  uStack_98 = uVar7;\n  piStack_94 = piVar22;\n  iStack_90 = iVar6;\n  pcStack_8c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);\n  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar6 = fd_write(iVar5,uVar7,uVar3);\n  if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (iStack_9c == *piVar23) {\n    return iVar6;\n  }\n  pcVar24 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar25 = ftp_rest;\n  iVar6 = iStack_9c;\n  (*pcVar24)();\n  pcStack_f0 = pcVar24 + 0x8c2b4;\n  piVar22 = *(int **)(pcVar24 + 0x84ac0);\n  iStack_dc = *piVar22;\n  uStack_d8 = uVar7;\n  piStack_d4 = piVar23;\n  iStack_d0 = iVar5;\n  pcStack_cc = pcVar25;\n  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);\n  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);\n  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }\n  if (iStack_dc == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar25 = ftp_retr;\n  iVar5 = iStack_dc;\n  (*pcVar24)();\n  piVar23 = *(int **)(pcVar24 + 0x8496c);\n  iStack_11c = *piVar23;\n  uStack_118 = uVar7;\n  piStack_114 = piVar22;\n  iStack_110 = iVar6;\n  pcStack_10c = pcVar25;\n  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);\n  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);\n  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);\n  ppcVar17 = ppcVar8;\n  iVar14 = fd_write(iVar5);\n  if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }\n  if (iStack_11c == *piVar23) {\n    return iVar14;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x84904);\n  iVar14 = iStack_11c;\n  (*pcVar24)();\n  pcStack_198 = pcVar24 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar19 = 0;\n  ppcStack_178 = ppcVar8;\n  piStack_174 = piVar23;\n  iStack_170 = iVar5;\n  pcStack_16c = param_1;\n  if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }\n  iVar6 = *(int *)(pcStack_198 + -0x7c70);\n  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }\n  pcVar24 = *(code **)(pcStack_198 + -0x785c);\n  pcVar25 = ftp_syst;\n  pcVar13 = pcStack_17c;\n  (*pcVar24)();\n  pcStack_1e0 = pcVar24 + 0x8bd8c;\n  piVar22 = *(int **)(pcVar24 + 0x84598);\n  iStack_1d4 = *piVar22;\n  ppcStack_1d0 = ppcVar9;\n  iStack_1cc = iVar19;\n  iStack_1c8 = iVar14;\n  iStack_1c4 = iVar6 + -0x6ee0;\n  iStack_1c0 = iVar21;\n  ppcStack_1bc = ppcVar17;\n  uStack_1b8 = uVar7;\n  pcStack_1b4 = pcVar25;\n  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);\n  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar17 = ppcVar9;\n  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar25 = ftp_pwd;\n  iVar6 = iStack_1d4;\n  (*pcVar24)();\n  pcStack_220 = pcVar24 + 0x8ba8c;\n  piVar23 = *(int **)(pcVar24 + 0x84298);\n  iStack_214 = *piVar23;\n  iStack_20c = iVar5;\n  piStack_208 = piVar22;\n  pcStack_204 = pcVar13;\n  puStack_200 = puVar10;\n  pcStack_1fc = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);\n  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_220 + -0x785c);\n  pcVar25 = ftp_size;\n  iVar14 = iStack_214;\n  (*pcVar24)();\n  piVar22 = *(int **)(pcVar24 + 0x840f4);\n  iStack_254 = *piVar22;\n  iStack_250 = iVar5;\n  piStack_24c = piVar23;\n  iStack_248 = iVar6;\n  ppcStack_244 = ppcVar17;\n  ppcStack_240 = ppcVar8;\n  pcStack_23c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);\n  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);\n  iVar5 = fd_write(iVar14,uVar7,uVar3);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x8408c);\n  iVar5 = iStack_254;\n  (*pcVar24)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar24 + 0x83e84))();\n  if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }\n  return 0x49;\n}" (primitive_type "int") (function_declarator "ftp_epsv(char *param_1,int *param_2,int *param_3,uint param_4)" (identifier "ftp_epsv") (parameter_list "(char *param_1,int *param_2,int *param_3,uint param_4)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char **ppcVar8;\n  char **ppcVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  int iVar14;\n  undefined *puVar15;\n  uint uVar16;\n  char cVar18;\n  char **ppcVar17;\n  int iVar19;\n  char *pcVar20;\n  int iVar21;\n  int *piVar22;\n  int *piVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined8 uVar26;\n  char *pcStack_258;\n  int iStack_254;\n  int iStack_250;\n  int *piStack_24c;\n  int iStack_248;\n  char **ppcStack_244;\n  char **ppcStack_240;\n  code *pcStack_23c;\n  undefined8 uStack_228;\n  code *pcStack_220;\n  char *pcStack_218;\n  int iStack_214;\n  int iStack_20c;\n  int *piStack_208;\n  char *pcStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  undefined8 uStack_1e8;\n  code *pcStack_1e0;\n  char *pcStack_1d8;\n  int iStack_1d4;\n  char **ppcStack_1d0;\n  int iStack_1cc;\n  int iStack_1c8;\n  int iStack_1c4;\n  int iStack_1c0;\n  char **ppcStack_1bc;\n  undefined4 uStack_1b8;\n  code *pcStack_1b4;\n  undefined8 uStack_1a0;\n  code *pcStack_198;\n  int iStack_18c;\n  undefined4 *puStack_188;\n  byte *pbStack_184;\n  char *pcStack_180;\n  char *pcStack_17c;\n  char **ppcStack_178;\n  int *piStack_174;\n  int iStack_170;\n  char *pcStack_16c;\n  byte *pbStack_138;\n  char *pcStack_120;\n  int iStack_11c;\n  undefined4 uStack_118;\n  int *piStack_114;\n  int iStack_110;\n  code *pcStack_10c;\n  undefined8 uStack_f8;\n  code *pcStack_f0;\n  int iStack_e4;\n  char *pcStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int *piStack_d4;\n  int iStack_d0;\n  code *pcStack_cc;\n  undefined8 uStack_b8;\n  code *pcStack_b0;\n  int iStack_a4;\n  char *pcStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  int *piStack_94;\n  int iStack_90;\n  code *pcStack_8c;\n  undefined8 uStack_78;\n  undefined *puStack_70;\n  int iStack_64;\n  char *pcStack_5c;\n  char acStack_58 [4];\n  int iStack_54;\n  int iStack_50;\n  undefined *puStack_4c;\n  int *piStack_48;\n  code *pcStack_44;\n  undefined8 local_30;\n  char *local_20;\n  int local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;\n  if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }\n  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);\n  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);\n  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  uVar7 = uVar3;\n  iVar5 = fd_write(param_1,uVar3,uVar4);\n  cVar18 = (char)uVar7;\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }\nLAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }\n  pcVar24 = ftp_type;\n  iVar6 = local_1c;\n  puVar15 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_70 = puVar15 + 0x8c558;\n  puStack_4c = puVar2;\n  piVar22 = *(int **)(puVar15 + 0x84d64);\n  acStack_58[1] = 0;\n  iStack_54 = *piVar22;\n  acStack_58[0] = cVar18;\n  iStack_50 = iVar5;\n  piStack_48 = param_3;\n  pcStack_44 = pcVar24;\n  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);\n  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);\n  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }\n  if (iStack_54 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(puStack_70 + -0x785c);\n  pcVar25 = ftp_cwd;\n  iVar5 = iStack_54;\n  (*pcVar24)();\n  pcStack_b0 = pcVar24 + 0x8c410;\n  piVar23 = *(int **)(pcVar24 + 0x84c1c);\n  iStack_9c = *piVar23;\n  uStack_98 = uVar7;\n  piStack_94 = piVar22;\n  iStack_90 = iVar6;\n  pcStack_8c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);\n  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);\n  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);\n  iVar6 = fd_write(iVar5,uVar7,uVar3);\n  if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (iStack_9c == *piVar23) {\n    return iVar6;\n  }\n  pcVar24 = *(code **)(pcStack_b0 + -0x785c);\n  pcVar25 = ftp_rest;\n  iVar6 = iStack_9c;\n  (*pcVar24)();\n  pcStack_f0 = pcVar24 + 0x8c2b4;\n  piVar22 = *(int **)(pcVar24 + 0x84ac0);\n  iStack_dc = *piVar22;\n  uStack_d8 = uVar7;\n  piStack_d4 = piVar23;\n  iStack_d0 = iVar5;\n  pcStack_cc = pcVar25;\n  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);\n  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);\n  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);\n  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7,uVar3);\n  if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }\n  if (iStack_dc == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_f0 + -0x785c);\n  pcVar25 = ftp_retr;\n  iVar5 = iStack_dc;\n  (*pcVar24)();\n  piVar23 = *(int **)(pcVar24 + 0x8496c);\n  iStack_11c = *piVar23;\n  uStack_118 = uVar7;\n  piStack_114 = piVar22;\n  iStack_110 = iVar6;\n  pcStack_10c = pcVar25;\n  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);\n  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);\n  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);\n  ppcVar17 = ppcVar8;\n  iVar14 = fd_write(iVar5);\n  if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }\n  if (iStack_11c == *piVar23) {\n    return iVar14;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x84904);\n  iVar14 = iStack_11c;\n  (*pcVar24)();\n  pcStack_198 = pcVar24 + 0x8c004;\n  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);\n  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);\n  pbStack_184 = pbStack_138;\n  pcStack_17c = (char *)*puStack_188;\n  *pbStack_138 = 0;\n  iVar19 = 0;\n  ppcStack_178 = ppcVar8;\n  piStack_174 = piVar23;\n  iStack_170 = iVar5;\n  pcStack_16c = param_1;\n  if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }\n  iVar6 = *(int *)(pcStack_198 + -0x7c70);\n  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);\n  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);\n  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }\n  pcVar24 = *(code **)(pcStack_198 + -0x785c);\n  pcVar25 = ftp_syst;\n  pcVar13 = pcStack_17c;\n  (*pcVar24)();\n  pcStack_1e0 = pcVar24 + 0x8bd8c;\n  piVar22 = *(int **)(pcVar24 + 0x84598);\n  iStack_1d4 = *piVar22;\n  ppcStack_1d0 = ppcVar9;\n  iStack_1cc = iVar19;\n  iStack_1c8 = iVar14;\n  iStack_1c4 = iVar6 + -0x6ee0;\n  iStack_1c0 = iVar21;\n  ppcStack_1bc = ppcVar17;\n  uStack_1b8 = uVar7;\n  pcStack_1b4 = pcVar25;\n  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);\n  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);\n  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);\n  ppcVar17 = ppcVar9;\n  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }\n  if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);\n  pcVar25 = ftp_pwd;\n  iVar6 = iStack_1d4;\n  (*pcVar24)();\n  pcStack_220 = pcVar24 + 0x8ba8c;\n  piVar23 = *(int **)(pcVar24 + 0x84298);\n  iStack_214 = *piVar23;\n  iStack_20c = iVar5;\n  piStack_208 = piVar22;\n  pcStack_204 = pcVar13;\n  puStack_200 = puVar10;\n  pcStack_1fc = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);\n  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);\n  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar7);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcStack_220 + -0x785c);\n  pcVar25 = ftp_size;\n  iVar14 = iStack_214;\n  (*pcVar24)();\n  piVar22 = *(int **)(pcVar24 + 0x840f4);\n  iStack_254 = *piVar22;\n  iStack_250 = iVar5;\n  piStack_24c = piVar23;\n  iStack_248 = iVar6;\n  ppcStack_244 = ppcVar17;\n  ppcStack_240 = ppcVar8;\n  pcStack_23c = pcVar25;\n  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);\n  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);\n  iVar5 = fd_write(iVar14,uVar7,uVar3);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }\n  pcVar24 = *(code **)(pcVar24 + 0x8408c);\n  iVar5 = iStack_254;\n  (*pcVar24)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar24 + 0x83e84))();\n  if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }\n  return 0x49;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "char **ppcVar8;" (primitive_type "char") (pointer_declarator "**ppcVar8" (* "*") (pointer_declarator "*ppcVar8" (* "*") (identifier "ppcVar8"))) (; ";")) (declaration "char **ppcVar9;" (primitive_type "char") (pointer_declarator "**ppcVar9" (* "*") (pointer_declarator "*ppcVar9" (* "*") (identifier "ppcVar9"))) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined8 *puVar12;" (type_identifier "undefined8") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "char cVar18;" (primitive_type "char") (identifier "cVar18") (; ";")) (declaration "char **ppcVar17;" (primitive_type "char") (pointer_declarator "**ppcVar17" (* "*") (pointer_declarator "*ppcVar17" (* "*") (identifier "ppcVar17"))) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "char *pcVar20;" (primitive_type "char") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "code *pcVar24;" (type_identifier "code") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "undefined8 uVar26;" (type_identifier "undefined8") (identifier "uVar26") (; ";")) (declaration "char *pcStack_258;" (primitive_type "char") (pointer_declarator "*pcStack_258" (* "*") (identifier "pcStack_258")) (; ";")) (declaration "int iStack_254;" (primitive_type "int") (identifier "iStack_254") (; ";")) (declaration "int iStack_250;" (primitive_type "int") (identifier "iStack_250") (; ";")) (declaration "int *piStack_24c;" (primitive_type "int") (pointer_declarator "*piStack_24c" (* "*") (identifier "piStack_24c")) (; ";")) (declaration "int iStack_248;" (primitive_type "int") (identifier "iStack_248") (; ";")) (declaration "char **ppcStack_244;" (primitive_type "char") (pointer_declarator "**ppcStack_244" (* "*") (pointer_declarator "*ppcStack_244" (* "*") (identifier "ppcStack_244"))) (; ";")) (declaration "char **ppcStack_240;" (primitive_type "char") (pointer_declarator "**ppcStack_240" (* "*") (pointer_declarator "*ppcStack_240" (* "*") (identifier "ppcStack_240"))) (; ";")) (declaration "code *pcStack_23c;" (type_identifier "code") (pointer_declarator "*pcStack_23c" (* "*") (identifier "pcStack_23c")) (; ";")) (declaration "undefined8 uStack_228;" (type_identifier "undefined8") (identifier "uStack_228") (; ";")) (declaration "code *pcStack_220;" (type_identifier "code") (pointer_declarator "*pcStack_220" (* "*") (identifier "pcStack_220")) (; ";")) (declaration "char *pcStack_218;" (primitive_type "char") (pointer_declarator "*pcStack_218" (* "*") (identifier "pcStack_218")) (; ";")) (declaration "int iStack_214;" (primitive_type "int") (identifier "iStack_214") (; ";")) (declaration "int iStack_20c;" (primitive_type "int") (identifier "iStack_20c") (; ";")) (declaration "int *piStack_208;" (primitive_type "int") (pointer_declarator "*piStack_208" (* "*") (identifier "piStack_208")) (; ";")) (declaration "char *pcStack_204;" (primitive_type "char") (pointer_declarator "*pcStack_204" (* "*") (identifier "pcStack_204")) (; ";")) (declaration "undefined4 *puStack_200;" (type_identifier "undefined4") (pointer_declarator "*puStack_200" (* "*") (identifier "puStack_200")) (; ";")) (declaration "code *pcStack_1fc;" (type_identifier "code") (pointer_declarator "*pcStack_1fc" (* "*") (identifier "pcStack_1fc")) (; ";")) (declaration "undefined8 uStack_1e8;" (type_identifier "undefined8") (identifier "uStack_1e8") (; ";")) (declaration "code *pcStack_1e0;" (type_identifier "code") (pointer_declarator "*pcStack_1e0" (* "*") (identifier "pcStack_1e0")) (; ";")) (declaration "char *pcStack_1d8;" (primitive_type "char") (pointer_declarator "*pcStack_1d8" (* "*") (identifier "pcStack_1d8")) (; ";")) (declaration "int iStack_1d4;" (primitive_type "int") (identifier "iStack_1d4") (; ";")) (declaration "char **ppcStack_1d0;" (primitive_type "char") (pointer_declarator "**ppcStack_1d0" (* "*") (pointer_declarator "*ppcStack_1d0" (* "*") (identifier "ppcStack_1d0"))) (; ";")) (declaration "int iStack_1cc;" (primitive_type "int") (identifier "iStack_1cc") (; ";")) (declaration "int iStack_1c8;" (primitive_type "int") (identifier "iStack_1c8") (; ";")) (declaration "int iStack_1c4;" (primitive_type "int") (identifier "iStack_1c4") (; ";")) (declaration "int iStack_1c0;" (primitive_type "int") (identifier "iStack_1c0") (; ";")) (declaration "char **ppcStack_1bc;" (primitive_type "char") (pointer_declarator "**ppcStack_1bc" (* "*") (pointer_declarator "*ppcStack_1bc" (* "*") (identifier "ppcStack_1bc"))) (; ";")) (declaration "undefined4 uStack_1b8;" (type_identifier "undefined4") (identifier "uStack_1b8") (; ";")) (declaration "code *pcStack_1b4;" (type_identifier "code") (pointer_declarator "*pcStack_1b4" (* "*") (identifier "pcStack_1b4")) (; ";")) (declaration "undefined8 uStack_1a0;" (type_identifier "undefined8") (identifier "uStack_1a0") (; ";")) (declaration "code *pcStack_198;" (type_identifier "code") (pointer_declarator "*pcStack_198" (* "*") (identifier "pcStack_198")) (; ";")) (declaration "int iStack_18c;" (primitive_type "int") (identifier "iStack_18c") (; ";")) (declaration "undefined4 *puStack_188;" (type_identifier "undefined4") (pointer_declarator "*puStack_188" (* "*") (identifier "puStack_188")) (; ";")) (declaration "byte *pbStack_184;" (type_identifier "byte") (pointer_declarator "*pbStack_184" (* "*") (identifier "pbStack_184")) (; ";")) (declaration "char *pcStack_180;" (primitive_type "char") (pointer_declarator "*pcStack_180" (* "*") (identifier "pcStack_180")) (; ";")) (declaration "char *pcStack_17c;" (primitive_type "char") (pointer_declarator "*pcStack_17c" (* "*") (identifier "pcStack_17c")) (; ";")) (declaration "char **ppcStack_178;" (primitive_type "char") (pointer_declarator "**ppcStack_178" (* "*") (pointer_declarator "*ppcStack_178" (* "*") (identifier "ppcStack_178"))) (; ";")) (declaration "int *piStack_174;" (primitive_type "int") (pointer_declarator "*piStack_174" (* "*") (identifier "piStack_174")) (; ";")) (declaration "int iStack_170;" (primitive_type "int") (identifier "iStack_170") (; ";")) (declaration "char *pcStack_16c;" (primitive_type "char") (pointer_declarator "*pcStack_16c" (* "*") (identifier "pcStack_16c")) (; ";")) (declaration "byte *pbStack_138;" (type_identifier "byte") (pointer_declarator "*pbStack_138" (* "*") (identifier "pbStack_138")) (; ";")) (declaration "char *pcStack_120;" (primitive_type "char") (pointer_declarator "*pcStack_120" (* "*") (identifier "pcStack_120")) (; ";")) (declaration "int iStack_11c;" (primitive_type "int") (identifier "iStack_11c") (; ";")) (declaration "undefined4 uStack_118;" (type_identifier "undefined4") (identifier "uStack_118") (; ";")) (declaration "int *piStack_114;" (primitive_type "int") (pointer_declarator "*piStack_114" (* "*") (identifier "piStack_114")) (; ";")) (declaration "int iStack_110;" (primitive_type "int") (identifier "iStack_110") (; ";")) (declaration "code *pcStack_10c;" (type_identifier "code") (pointer_declarator "*pcStack_10c" (* "*") (identifier "pcStack_10c")) (; ";")) (declaration "undefined8 uStack_f8;" (type_identifier "undefined8") (identifier "uStack_f8") (; ";")) (declaration "code *pcStack_f0;" (type_identifier "code") (pointer_declarator "*pcStack_f0" (* "*") (identifier "pcStack_f0")) (; ";")) (declaration "int iStack_e4;" (primitive_type "int") (identifier "iStack_e4") (; ";")) (declaration "char *pcStack_e0;" (primitive_type "char") (pointer_declarator "*pcStack_e0" (* "*") (identifier "pcStack_e0")) (; ";")) (declaration "int iStack_dc;" (primitive_type "int") (identifier "iStack_dc") (; ";")) (declaration "undefined4 uStack_d8;" (type_identifier "undefined4") (identifier "uStack_d8") (; ";")) (declaration "int *piStack_d4;" (primitive_type "int") (pointer_declarator "*piStack_d4" (* "*") (identifier "piStack_d4")) (; ";")) (declaration "int iStack_d0;" (primitive_type "int") (identifier "iStack_d0") (; ";")) (declaration "code *pcStack_cc;" (type_identifier "code") (pointer_declarator "*pcStack_cc" (* "*") (identifier "pcStack_cc")) (; ";")) (declaration "undefined8 uStack_b8;" (type_identifier "undefined8") (identifier "uStack_b8") (; ";")) (declaration "code *pcStack_b0;" (type_identifier "code") (pointer_declarator "*pcStack_b0" (* "*") (identifier "pcStack_b0")) (; ";")) (declaration "int iStack_a4;" (primitive_type "int") (identifier "iStack_a4") (; ";")) (declaration "char *pcStack_a0;" (primitive_type "char") (pointer_declarator "*pcStack_a0" (* "*") (identifier "pcStack_a0")) (; ";")) (declaration "int iStack_9c;" (primitive_type "int") (identifier "iStack_9c") (; ";")) (declaration "undefined4 uStack_98;" (type_identifier "undefined4") (identifier "uStack_98") (; ";")) (declaration "int *piStack_94;" (primitive_type "int") (pointer_declarator "*piStack_94" (* "*") (identifier "piStack_94")) (; ";")) (declaration "int iStack_90;" (primitive_type "int") (identifier "iStack_90") (; ";")) (declaration "code *pcStack_8c;" (type_identifier "code") (pointer_declarator "*pcStack_8c" (* "*") (identifier "pcStack_8c")) (; ";")) (declaration "undefined8 uStack_78;" (type_identifier "undefined8") (identifier "uStack_78") (; ";")) (declaration "undefined *puStack_70;" (type_identifier "undefined") (pointer_declarator "*puStack_70" (* "*") (identifier "puStack_70")) (; ";")) (declaration "int iStack_64;" (primitive_type "int") (identifier "iStack_64") (; ";")) (declaration "char *pcStack_5c;" (primitive_type "char") (pointer_declarator "*pcStack_5c" (* "*") (identifier "pcStack_5c")) (; ";")) (declaration "char acStack_58 [4];" (primitive_type "char") (array_declarator "acStack_58 [4]" (identifier "acStack_58") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_54;" (primitive_type "int") (identifier "iStack_54") (; ";")) (declaration "int iStack_50;" (primitive_type "int") (identifier "iStack_50") (; ";")) (declaration "undefined *puStack_4c;" (type_identifier "undefined") (pointer_declarator "*puStack_4c" (* "*") (identifier "puStack_4c")) (; ";")) (declaration "int *piStack_48;" (primitive_type "int") (pointer_declarator "*piStack_48" (* "*") (identifier "piStack_48")) (; ";")) (declaration "code *pcStack_44;" (type_identifier "code") (pointer_declarator "*pcStack_44" (* "*") (identifier "pcStack_44")) (; ";")) (declaration "undefined8 local_30;" (type_identifier "undefined8") (identifier "local_30") (; ";")) (declaration "char *local_20;" (primitive_type "char") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000afc3c" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_000afc3c")) (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000afc3c" (identifier "local_1c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000afc3c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000afc3c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000afc3c")))) (; ";")) (if_statement "if (*param_2 == 2) {\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }\n  else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }" (if "if") (parenthesized_expression "(*param_2 == 2)" (( "(") (binary_expression "*param_2 == 2" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    puVar15 = PTR_DAT_000af498 + -0x6670;\n  }" ({ "{") (expression_statement "puVar15 = PTR_DAT_000af498 + -0x6670;" (assignment_expression "puVar15 = PTR_DAT_000af498 + -0x6670" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_000af498 + -0x6670" (identifier "PTR_DAT_000af498") (+ "+") (number_literal "-0x6670"))) (; ";")) (} "}")) (else_clause "else {\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }" (else "else") (compound_statement "{\n    puVar15 = PTR_s_hallenge__000af46c + 0x1550;\n  }" ({ "{") (expression_statement "puVar15 = PTR_s_hallenge__000af46c + 0x1550;" (assignment_expression "puVar15 = PTR_s_hallenge__000af46c + 0x1550" (identifier "puVar15") (= "=") (binary_expression "PTR_s_hallenge__000af46c + 0x1550" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "0x1550"))) (; ";")) (} "}")))) (expression_statement "uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);" (assignment_expression "uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15)" (identifier "uVar3") (= "=") (call_expression "FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15)" (identifier "FUN_00029120") (argument_list "(PTR_s_hallenge__000af46c + -0x15ec,puVar15)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + -0x15ec" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0x15ec")) (, ",") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);" (assignment_expression "uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_strlen_000afc68)(uVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000afc68)" (( "(") (pointer_expression "*(code *)PTR_strlen_000afc68" (* "*") (cast_expression "(code *)PTR_strlen_000afc68" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000afc68"))) () ")")) (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);" (assignment_expression "local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" (identifier "local_30") (= "=") (pointer_expression "*(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000af468 + 0x40b8)" (( "(") (binary_expression "PTR_LAB_000af468 + 0x40b8" (identifier "PTR_LAB_000af468") (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "uVar7 = uVar3;" (assignment_expression "uVar7 = uVar3" (identifier "uVar7") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iVar5 = fd_write(param_1,uVar3,uVar4);" (assignment_expression "iVar5 = fd_write(param_1,uVar3,uVar4)" (identifier "iVar5") (= "=") (call_expression "fd_write(param_1,uVar3,uVar4)" (identifier "fd_write") (argument_list "(param_1,uVar3,uVar4)" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "cVar18 = (char)uVar7;" (assignment_expression "cVar18 = (char)uVar7" (identifier "cVar18") (= "=") (cast_expression "(char)uVar7" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = 0x2c;\n    (*(code *)PTR_free_000afd08)(uVar3);\n  }" ({ "{") (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(uVar3);" (call_expression "(*(code *)PTR_free_000afd08)(uVar3)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    cVar18 = (char)&local_20;\n    iVar5 = ftp_response(param_1);\n    if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }\n  }" ({ "{") (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar18 = (char)&local_20;" (assignment_expression "cVar18 = (char)&local_20" (identifier "cVar18") (= "=") (cast_expression "(char)&local_20" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "&local_20" (& "&") (identifier "local_20")))) (; ";")) (expression_statement "iVar5 = ftp_response(param_1);" (assignment_expression "iVar5 = ftp_response(param_1)" (identifier "iVar5") (= "=") (call_expression "ftp_response(param_1)" (identifier "ftp_response") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar5 == 7) {\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      param_1 = local_20;\n      if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }\n    }" ({ "{") (expression_statement "param_1 = local_20;" (assignment_expression "param_1 = local_20" (identifier "param_1") (= "=") (identifier "local_20")) (; ";")) (if_statement "if (*local_20 == '2') {\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }\n      else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }" (if "if") (parenthesized_expression "(*local_20 == '2')" (( "(") (binary_expression "*local_20 == '2'" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (== "==") (char_literal "'2'" (' "'") (character "2") (' "'"))) () ")")) (compound_statement "{\n        if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }\n        cVar18 = '(';\n        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);\n        puVar15 = PTR_free_000afd08;\n        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }\n        iVar5 = 0x1c;\n        (*(code *)PTR_free_000afd08)(param_1);\n      }" ({ "{") (if_statement "if (PTR_opt_000af488[0x16b] != '\0') {\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }" (if "if") (parenthesized_expression "(PTR_opt_000af488[0x16b] != '\0')" (( "(") (binary_expression "PTR_opt_000af488[0x16b] != '\0'" (subscript_expression "PTR_opt_000af488[0x16b]" (identifier "PTR_opt_000af488") ([ "[") (number_literal "0x16b") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);\n          param_1 = local_20;\n        }" ({ "{") (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20)" (identifier "debug_logprintf") (argument_list "(PTR_s_hallenge__000af46c + -0x15e4,local_20)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + -0x15e4" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0x15e4")) (, ",") (identifier "local_20") () ")"))) (; ";")) (expression_statement "param_1 = local_20;" (assignment_expression "param_1 = local_20" (identifier "param_1") (= "=") (identifier "local_20")) (; ";")) (} "}"))) (expression_statement "cVar18 = '(';" (assignment_expression "cVar18 = '('" (identifier "cVar18") (= "=") (char_literal "'('" (' "'") (character "(") (' "'"))) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);" (assignment_expression "iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_strchr_000afdc8)(param_1)" (parenthesized_expression "(*(code *)PTR_strchr_000afdc8)" (( "(") (pointer_expression "*(code *)PTR_strchr_000afdc8" (* "*") (cast_expression "(code *)PTR_strchr_000afdc8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_000afdc8"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "puVar15 = PTR_free_000afd08;" (assignment_expression "puVar15 = PTR_free_000afd08" (identifier "puVar15") (= "=") (identifier "PTR_free_000afd08")) (; ";")) (if_statement "if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)) {\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14))" (( "(") (binary_expression "((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))\n           && (*(char *)(iVar6 + 2) == iVar14)" (parenthesized_expression "((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))" (( "(") (binary_expression "(iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e)" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e)" (( "(") (comma_expression "iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e" (assignment_expression "iVar14 = (int)*(char *)(iVar6 + 1)" (identifier "iVar14") (= "=") (cast_expression "(int)*(char *)(iVar6 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar6 + 1)" (* "*") (cast_expression "(char *)(iVar6 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 1)" (( "(") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) () ")")))))) (, ",") (binary_expression "(iVar14 - 0x21U & 0xff) < 0x5e" (parenthesized_expression "(iVar14 - 0x21U & 0xff)" (( "(") (binary_expression "iVar14 - 0x21U & 0xff" (binary_expression "iVar14 - 0x21U" (identifier "iVar14") (- "-") (number_literal "0x21U")) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x5e"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar6 + 2) == iVar14)" (( "(") (binary_expression "*(char *)(iVar6 + 2) == iVar14" (pointer_expression "*(char *)(iVar6 + 2)" (* "*") (cast_expression "(char *)(iVar6 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 2)" (( "(") (binary_expression "iVar6 + 2" (identifier "iVar6") (+ "+") (number_literal "2")) () ")")))) (== "==") (identifier "iVar14")) () ")"))) () ")")) (compound_statement "{\n          cVar18 = *(char *)(iVar6 + 3);\n          pcVar13 = (char *)(iVar6 + 4);\n          if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }\n        }" ({ "{") (expression_statement "cVar18 = *(char *)(iVar6 + 3);" (assignment_expression "cVar18 = *(char *)(iVar6 + 3)" (identifier "cVar18") (= "=") (pointer_expression "*(char *)(iVar6 + 3)" (* "*") (cast_expression "(char *)(iVar6 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 3)" (( "(") (binary_expression "iVar6 + 3" (identifier "iVar6") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "pcVar13 = (char *)(iVar6 + 4);" (assignment_expression "pcVar13 = (char *)(iVar6 + 4)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(iVar6 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (cVar18 == iVar14) {\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }" (if "if") (parenthesized_expression "(cVar18 == iVar14)" (( "(") (binary_expression "cVar18 == iVar14" (identifier "cVar18") (== "==") (identifier "iVar14")) () ")")) (compound_statement "{\n            iVar19 = (int)*pcVar13;\n            param_4 = iVar19 - 0x30;\n            uVar16 = (uint)(param_4 < 10);\n            iVar21 = 0;\n            if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }\n            cVar18 = (char)uVar16;\n            if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }\n          }" ({ "{") (expression_statement "iVar19 = (int)*pcVar13;" (assignment_expression "iVar19 = (int)*pcVar13" (identifier "iVar19") (= "=") (cast_expression "(int)*pcVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")))) (; ";")) (expression_statement "param_4 = iVar19 - 0x30;" (assignment_expression "param_4 = iVar19 - 0x30" (identifier "param_4") (= "=") (binary_expression "iVar19 - 0x30" (identifier "iVar19") (- "-") (number_literal "0x30"))) (; ";")) (expression_statement "uVar16 = (uint)(param_4 < 10);" (assignment_expression "uVar16 = (uint)(param_4 < 10)" (identifier "uVar16") (= "=") (call_expression "(uint)(param_4 < 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 < 10)" (( "(") (binary_expression "param_4 < 10" (identifier "param_4") (< "<") (number_literal "10")) () ")")))) (; ";")) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" (identifier "iVar21") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar16 != 0) {\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar16 = 0;\n              do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);\n            }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              } while (param_4 < 10);" (do "do") (compound_statement "{\n                pcVar20 = pcVar13 + 1;\n                uVar16 = (uVar16 + iVar21) * 2;\n                iVar21 = param_4 + uVar16;\n                if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }\n                iVar19 = (int)*pcVar20;\n                param_4 = iVar19 - 0x30;\n                uVar16 = iVar21 * 4;\n                pcVar13 = pcVar20;\n              }" ({ "{") (expression_statement "pcVar20 = pcVar13 + 1;" (assignment_expression "pcVar20 = pcVar13 + 1" (identifier "pcVar20") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar16 = (uVar16 + iVar21) * 2;" (assignment_expression "uVar16 = (uVar16 + iVar21) * 2" (identifier "uVar16") (= "=") (binary_expression "(uVar16 + iVar21) * 2" (parenthesized_expression "(uVar16 + iVar21)" (( "(") (binary_expression "uVar16 + iVar21" (identifier "uVar16") (+ "+") (identifier "iVar21")) () ")")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "iVar21 = param_4 + uVar16;" (assignment_expression "iVar21 = param_4 + uVar16" (identifier "iVar21") (= "=") (binary_expression "param_4 + uVar16" (identifier "param_4") (+ "+") (identifier "uVar16"))) (; ";")) (if_statement "if ((char *)(iVar6 + 9) == pcVar20) {\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }" (if "if") (parenthesized_expression "((char *)(iVar6 + 9) == pcVar20)" (( "(") (binary_expression "(char *)(iVar6 + 9) == pcVar20" (cast_expression "(char *)(iVar6 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 9)" (( "(") (binary_expression "iVar6 + 9" (identifier "iVar6") (+ "+") (number_literal "9")) () ")"))) (== "==") (identifier "pcVar20")) () ")")) (compound_statement "{\n                  iVar19 = (int)pcVar13[1];\n                  pcVar13 = (char *)(iVar6 + 9);\n                  break;\n                }" ({ "{") (expression_statement "iVar19 = (int)pcVar13[1];" (assignment_expression "iVar19 = (int)pcVar13[1]" (identifier "iVar19") (= "=") (cast_expression "(int)pcVar13[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pcVar13[1]" (identifier "pcVar13") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pcVar13 = (char *)(iVar6 + 9);" (assignment_expression "pcVar13 = (char *)(iVar6 + 9)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(iVar6 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 9)" (( "(") (binary_expression "iVar6 + 9" (identifier "iVar6") (+ "+") (number_literal "9")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar19 = (int)*pcVar20;" (assignment_expression "iVar19 = (int)*pcVar20" (identifier "iVar19") (= "=") (cast_expression "(int)*pcVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")))) (; ";")) (expression_statement "param_4 = iVar19 - 0x30;" (assignment_expression "param_4 = iVar19 - 0x30" (identifier "param_4") (= "=") (binary_expression "iVar19 - 0x30" (identifier "iVar19") (- "-") (number_literal "0x30"))) (; ";")) (expression_statement "uVar16 = iVar21 * 4;" (assignment_expression "uVar16 = iVar21 * 4" (identifier "uVar16") (= "=") (binary_expression "iVar21 * 4" (identifier "iVar21") (* "*") (number_literal "4"))) (; ";")) (expression_statement "pcVar13 = pcVar20;" (assignment_expression "pcVar13 = pcVar20" (identifier "pcVar13") (= "=") (identifier "pcVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 < 10)" (( "(") (binary_expression "param_4 < 10" (identifier "param_4") (< "<") (number_literal "10")) () ")")) (; ";")) (} "}"))) (expression_statement "cVar18 = (char)uVar16;" (assignment_expression "cVar18 = (char)uVar16" (identifier "cVar18") (= "=") (cast_expression "(char)uVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar16"))) (; ";")) (if_statement "if (iVar14 == iVar19) {\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }" (if "if") (parenthesized_expression "(iVar14 == iVar19)" (( "(") (binary_expression "iVar14 == iVar19" (identifier "iVar14") (== "==") (identifier "iVar19")) () ")")) (compound_statement "{\n              if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }\n              goto LAB_0002ae20;\n            }" ({ "{") (if_statement "if (pcVar13[1] == ')') {\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }\n              else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }" (if "if") (parenthesized_expression "(pcVar13[1] == ')')" (( "(") (binary_expression "pcVar13[1] == ')'" (subscript_expression "pcVar13[1]" (identifier "pcVar13") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "')'" (' "'") (character ")") (' "'"))) () ")")) (compound_statement "{\n                *param_3 = iVar21;\n                (*(code *)puVar15)(param_1);\n              }" ({ "{") (expression_statement "*param_3 = iVar21;" (assignment_expression "*param_3 = iVar21" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar21")) (; ";")) (expression_statement "(*(code *)puVar15)(param_1);" (call_expression "(*(code *)puVar15)(param_1)" (parenthesized_expression "(*(code *)puVar15)" (( "(") (pointer_expression "*(code *)puVar15" (* "*") (cast_expression "(code *)puVar15" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }" (else "else") (compound_statement "{\n                iVar5 = 0x1c;\n                (*(code *)PTR_free_000afd08)();\n              }" ({ "{") (expression_statement "iVar5 = 0x1c;" (assignment_expression "iVar5 = 0x1c" (identifier "iVar5") (= "=") (number_literal "0x1c")) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0002ae20;" (goto "goto") (statement_identifier "LAB_0002ae20") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iVar5 = 0x1c;" (assignment_expression "iVar5 = 0x1c" (identifier "iVar5") (= "=") (number_literal "0x1c")) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(param_1);" (call_expression "(*(code *)PTR_free_000afd08)(param_1)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }" (else "else") (compound_statement "{\n        iVar5 = 0x1d;\n        (*(code *)PTR_free_000afd08)(local_20);\n      }" ({ "{") (expression_statement "iVar5 = 0x1d;" (assignment_expression "iVar5 = 0x1d" (identifier "iVar5") (= "=") (number_literal "0x1d")) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(local_20);" (call_expression "(*(code *)PTR_free_000afd08)(local_20)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(local_20)" (( "(") (identifier "local_20") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (labeled_statement "LAB_0002ae20:\n  if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }" (statement_identifier "LAB_0002ae20") (: ":") (if_statement "if (local_1c == *(int *)puVar2) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(local_1c == *(int *)puVar2)" (( "(") (binary_expression "local_1c == *(int *)puVar2" (identifier "local_1c") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))) (expression_statement "pcVar24 = ftp_type;" (assignment_expression "pcVar24 = ftp_type" (identifier "pcVar24") (= "=") (identifier "ftp_type")) (; ";")) (expression_statement "iVar6 = local_1c;" (assignment_expression "iVar6 = local_1c" (identifier "iVar6") (= "=") (identifier "local_1c")) (; ";")) (expression_statement "puVar15 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar15 = PTR___stack_chk_fail_000afbd4" (identifier "puVar15") (= "=") (identifier "PTR___stack_chk_fail_000afbd4")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000afbd4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_70 = puVar15 + 0x8c558;" (assignment_expression "puStack_70 = puVar15 + 0x8c558" (identifier "puStack_70") (= "=") (binary_expression "puVar15 + 0x8c558" (identifier "puVar15") (+ "+") (number_literal "0x8c558"))) (; ";")) (expression_statement "puStack_4c = puVar2;" (assignment_expression "puStack_4c = puVar2" (identifier "puStack_4c") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "piVar22 = *(int **)(puVar15 + 0x84d64);" (assignment_expression "piVar22 = *(int **)(puVar15 + 0x84d64)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(puVar15 + 0x84d64)" (* "*") (cast_expression "(int **)(puVar15 + 0x84d64)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x84d64)" (( "(") (binary_expression "puVar15 + 0x84d64" (identifier "puVar15") (+ "+") (number_literal "0x84d64")) () ")"))))) (; ";")) (expression_statement "acStack_58[1] = 0;" (assignment_expression "acStack_58[1] = 0" (subscript_expression "acStack_58[1]" (identifier "acStack_58") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_54 = *piVar22;" (assignment_expression "iStack_54 = *piVar22" (identifier "iStack_54") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "acStack_58[0] = cVar18;" (assignment_expression "acStack_58[0] = cVar18" (subscript_expression "acStack_58[0]" (identifier "acStack_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "cVar18")) (; ";")) (expression_statement "iStack_50 = iVar5;" (assignment_expression "iStack_50 = iVar5" (identifier "iStack_50") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piStack_48 = param_3;" (assignment_expression "piStack_48 = param_3" (identifier "piStack_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_44 = pcVar24;" (assignment_expression "pcStack_44 = pcVar24" (identifier "pcStack_44") (= "=") (identifier "pcVar24")) (; ";")) (expression_statement "uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58)" (identifier "uVar7") (= "=") (call_expression "FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58)" (identifier "FUN_00029120") (argument_list "(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58)" (( "(") (binary_expression "*(int *)(puVar15 + 0x84594) + -0x15d4" (pointer_expression "*(int *)(puVar15 + 0x84594)" (* "*") (cast_expression "(int *)(puVar15 + 0x84594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x84594)" (( "(") (binary_expression "puVar15 + 0x84594" (identifier "puVar15") (+ "+") (number_literal "0x84594")) () ")")))) (+ "+") (number_literal "-0x15d4")) (, ",") (identifier "acStack_58") () ")")))) (; ";")) (expression_statement "uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);" (assignment_expression "uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(puStack_70 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(puStack_70 + -0x77c8))" (( "(") (pointer_expression "**(code **)(puStack_70 + -0x77c8)" (* "*") (pointer_expression "*(code **)(puStack_70 + -0x77c8)" (* "*") (cast_expression "(code **)(puStack_70 + -0x77c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_70 + -0x77c8)" (( "(") (binary_expression "puStack_70 + -0x77c8" (identifier "puStack_70") (+ "+") (number_literal "-0x77c8")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" (identifier "uStack_78") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_70 + -0x7fc8) + 0x40b8)" (( "(") (binary_expression "*(int *)(puStack_70 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(puStack_70 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_70 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_70 + -0x7fc8)" (( "(") (binary_expression "puStack_70 + -0x7fc8" (identifier "puStack_70") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "iVar5 = fd_write(iVar6,uVar7,uVar3);" (assignment_expression "iVar5 = fd_write(iVar6,uVar7,uVar3)" (identifier "iVar5") (= "=") (call_expression "fd_write(iVar6,uVar7,uVar3)" (identifier "fd_write") (argument_list "(iVar6,uVar7,uVar3)" (( "(") (identifier "iVar6") (, ",") (identifier "uVar7") (, ",") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puStack_70 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }" ({ "{") (expression_statement "(**(code **)(puStack_70 + -0x7728))(uVar7);" (call_expression "(**(code **)(puStack_70 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" (( "(") (pointer_expression "**(code **)(puStack_70 + -0x7728)" (* "*") (pointer_expression "*(code **)(puStack_70 + -0x7728)" (* "*") (cast_expression "(code **)(puStack_70 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_70 + -0x7728)" (( "(") (binary_expression "puStack_70 + -0x7728" (identifier "puStack_70") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(puStack_70 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_5c);\n    if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }\n  }" ({ "{") (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" (( "(") (pointer_expression "**(code **)(puStack_70 + -0x7728)" (* "*") (pointer_expression "*(code **)(puStack_70 + -0x7728)" (* "*") (cast_expression "(code **)(puStack_70 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_70 + -0x7728)" (( "(") (binary_expression "puStack_70 + -0x7728" (identifier "puStack_70") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_5c);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_5c)" (identifier "iVar5") (= "=") (call_expression "ftp_response(iVar6,&pcStack_5c)" (identifier "ftp_response") (argument_list "(iVar6,&pcStack_5c)" (( "(") (identifier "iVar6") (, ",") (pointer_expression "&pcStack_5c" (& "&") (identifier "pcStack_5c")) () ")")))) (; ";")) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }\n    }" ({ "{") (if_statement "if (*pcStack_5c == '2') {\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }\n      else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }" (if "if") (parenthesized_expression "(*pcStack_5c == '2')" (( "(") (binary_expression "*pcStack_5c == '2'" (pointer_expression "*pcStack_5c" (* "*") (identifier "pcStack_5c")) (== "==") (char_literal "'2'" (' "'") (character "2") (' "'"))) () ")")) (compound_statement "{\n        iStack_64 = iVar5;\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = iStack_64;\n      }" ({ "{") (expression_statement "iStack_64 = iVar5;" (assignment_expression "iStack_64 = iVar5" (identifier "iStack_64") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" (( "(") (pointer_expression "**(code **)(puStack_70 + -0x7728)" (* "*") (pointer_expression "*(code **)(puStack_70 + -0x7728)" (* "*") (cast_expression "(code **)(puStack_70 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_70 + -0x7728)" (( "(") (binary_expression "puStack_70 + -0x7728" (identifier "puStack_70") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = iStack_64;" (assignment_expression "iVar5 = iStack_64" (identifier "iVar5") (= "=") (identifier "iStack_64")) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }" (else "else") (compound_statement "{\n        (**(code **)(puStack_70 + -0x7728))();\n        iVar5 = 0xd;\n      }" ({ "{") (expression_statement "(**(code **)(puStack_70 + -0x7728))();" (call_expression "(**(code **)(puStack_70 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_70 + -0x7728))" (( "(") (pointer_expression "**(code **)(puStack_70 + -0x7728)" (* "*") (pointer_expression "*(code **)(puStack_70 + -0x7728)" (* "*") (cast_expression "(code **)(puStack_70 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_70 + -0x7728)" (( "(") (binary_expression "puStack_70 + -0x7728" (identifier "puStack_70") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" (identifier "iVar5") (= "=") (number_literal "0xd")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (if_statement "if (iStack_54 == *piVar22) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_54 == *piVar22)" (( "(") (binary_expression "iStack_54 == *piVar22" (identifier "iStack_54") (== "==") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (expression_statement "pcVar24 = *(code **)(puStack_70 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(puStack_70 + -0x785c)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_70 + -0x785c)" (* "*") (cast_expression "(code **)(puStack_70 + -0x785c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_70 + -0x785c)" (( "(") (binary_expression "puStack_70 + -0x785c" (identifier "puStack_70") (+ "+") (number_literal "-0x785c")) () ")"))))) (; ";")) (expression_statement "pcVar25 = ftp_cwd;" (assignment_expression "pcVar25 = ftp_cwd" (identifier "pcVar25") (= "=") (identifier "ftp_cwd")) (; ";")) (expression_statement "iVar5 = iStack_54;" (assignment_expression "iVar5 = iStack_54" (identifier "iVar5") (= "=") (identifier "iStack_54")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_b0 = pcVar24 + 0x8c410;" (assignment_expression "pcStack_b0 = pcVar24 + 0x8c410" (identifier "pcStack_b0") (= "=") (binary_expression "pcVar24 + 0x8c410" (identifier "pcVar24") (+ "+") (number_literal "0x8c410"))) (; ";")) (expression_statement "piVar23 = *(int **)(pcVar24 + 0x84c1c);" (assignment_expression "piVar23 = *(int **)(pcVar24 + 0x84c1c)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(pcVar24 + 0x84c1c)" (* "*") (cast_expression "(int **)(pcVar24 + 0x84c1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84c1c)" (( "(") (binary_expression "pcVar24 + 0x84c1c" (identifier "pcVar24") (+ "+") (number_literal "0x84c1c")) () ")"))))) (; ";")) (expression_statement "iStack_9c = *piVar23;" (assignment_expression "iStack_9c = *piVar23" (identifier "iStack_9c") (= "=") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) (; ";")) (expression_statement "uStack_98 = uVar7;" (assignment_expression "uStack_98 = uVar7" (identifier "uStack_98") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "piStack_94 = piVar22;" (assignment_expression "piStack_94 = piVar22" (identifier "piStack_94") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "iStack_90 = iVar6;" (assignment_expression "iStack_90 = iVar6" (identifier "iStack_90") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "pcStack_8c = pcVar25;" (assignment_expression "pcStack_8c = pcVar25" (identifier "pcStack_8c") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc)" (identifier "uVar7") (= "=") (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc)" (identifier "FUN_00029120") (argument_list "(*(int *)(pcVar24 + 0x8444c) + -0x15cc)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x8444c) + -0x15cc" (pointer_expression "*(int *)(pcVar24 + 0x8444c)" (* "*") (cast_expression "(int *)(pcVar24 + 0x8444c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x8444c)" (( "(") (binary_expression "pcVar24 + 0x8444c" (identifier "pcVar24") (+ "+") (number_literal "0x8444c")) () ")")))) (+ "+") (number_literal "-0x15cc")) () ")")))) (; ";")) (expression_statement "uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);" (assignment_expression "uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(pcStack_b0 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x77c8))" (( "(") (pointer_expression "**(code **)(pcStack_b0 + -0x77c8)" (* "*") (pointer_expression "*(code **)(pcStack_b0 + -0x77c8)" (* "*") (cast_expression "(code **)(pcStack_b0 + -0x77c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_b0 + -0x77c8)" (( "(") (binary_expression "pcStack_b0 + -0x77c8" (identifier "pcStack_b0") (+ "+") (number_literal "-0x77c8")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" (identifier "uStack_b8") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8)" (( "(") (binary_expression "*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_b0 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcStack_b0 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_b0 + -0x7fc8)" (( "(") (binary_expression "pcStack_b0 + -0x7fc8" (identifier "pcStack_b0") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "iVar6 = fd_write(iVar5,uVar7,uVar3);" (assignment_expression "iVar6 = fd_write(iVar5,uVar7,uVar3)" (identifier "iVar6") (= "=") (call_expression "fd_write(iVar5,uVar7,uVar3)" (identifier "fd_write") (argument_list "(iVar5,uVar7,uVar3)" (( "(") (identifier "iVar5") (, ",") (identifier "uVar7") (, ",") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) {\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcStack_b0 + -0x7728))(uVar7);\n    iVar6 = 0x2c;\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_b0 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_b0 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_b0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_b0 + -0x7728)" (( "(") (binary_expression "pcStack_b0 + -0x7728" (identifier "pcStack_b0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "iVar6 = 0x2c;" (assignment_expression "iVar6 = 0x2c" (identifier "iVar6") (= "=") (number_literal "0x2c")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_b0 + -0x7728))();\n    iVar6 = ftp_response(iVar5,&pcStack_a0);\n    if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_b0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_b0 + -0x7728)" (( "(") (binary_expression "pcStack_b0 + -0x7728" (identifier "pcStack_b0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = ftp_response(iVar5,&pcStack_a0);" (assignment_expression "iVar6 = ftp_response(iVar5,&pcStack_a0)" (identifier "iVar6") (= "=") (call_expression "ftp_response(iVar5,&pcStack_a0)" (identifier "ftp_response") (argument_list "(iVar5,&pcStack_a0)" (( "(") (identifier "iVar5") (, ",") (pointer_expression "&pcStack_a0" (& "&") (identifier "pcStack_a0")) () ")")))) (; ";")) (if_statement "if (iVar6 == 7) {\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }" (if "if") (parenthesized_expression "(iVar6 == 7)" (( "(") (binary_expression "iVar6 == 7" (identifier "iVar6") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }\n    }" ({ "{") (if_statement "if (*pcStack_a0 == '5') {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }\n      else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" (if "if") (parenthesized_expression "(*pcStack_a0 == '5')" (( "(") (binary_expression "*pcStack_a0 == '5'" (pointer_expression "*pcStack_a0" (* "*") (identifier "pcStack_a0")) (== "==") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xc;\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_b0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_b0 + -0x7728)" (( "(") (binary_expression "pcStack_b0 + -0x7728" (identifier "pcStack_b0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = 0xc;" (assignment_expression "iVar6 = 0xc" (identifier "iVar6") (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" (else "else") (if_statement "if (*pcStack_a0 == '2') {\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }\n      else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" (if "if") (parenthesized_expression "(*pcStack_a0 == '2')" (( "(") (binary_expression "*pcStack_a0 == '2'" (pointer_expression "*pcStack_a0" (* "*") (identifier "pcStack_a0")) (== "==") (char_literal "'2'" (' "'") (character "2") (' "'"))) () ")")) (compound_statement "{\n        iStack_a4 = iVar6;\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = iStack_a4;\n      }" ({ "{") (expression_statement "iStack_a4 = iVar6;" (assignment_expression "iStack_a4 = iVar6" (identifier "iStack_a4") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_b0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_b0 + -0x7728)" (( "(") (binary_expression "pcStack_b0 + -0x7728" (identifier "pcStack_b0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = iStack_a4;" (assignment_expression "iVar6 = iStack_a4" (identifier "iVar6") (= "=") (identifier "iStack_a4")) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" (else "else") (compound_statement "{\n        (**(code **)(pcStack_b0 + -0x7728))();\n        iVar6 = 0xe;\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_b0 + -0x7728))();" (call_expression "(**(code **)(pcStack_b0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_b0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_b0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_b0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_b0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_b0 + -0x7728)" (( "(") (binary_expression "pcStack_b0 + -0x7728" (identifier "pcStack_b0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = 0xe;" (assignment_expression "iVar6 = 0xe" (identifier "iVar6") (= "=") (number_literal "0xe")) (; ";")) (} "}")))))) (} "}"))) (} "}")))) (if_statement "if (iStack_9c == *piVar23) {\n    return iVar6;\n  }" (if "if") (parenthesized_expression "(iStack_9c == *piVar23)" (( "(") (binary_expression "iStack_9c == *piVar23" (identifier "iStack_9c") (== "==") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) () ")")) (compound_statement "{\n    return iVar6;\n  }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "pcVar24 = *(code **)(pcStack_b0 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_b0 + -0x785c)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcStack_b0 + -0x785c)" (* "*") (cast_expression "(code **)(pcStack_b0 + -0x785c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_b0 + -0x785c)" (( "(") (binary_expression "pcStack_b0 + -0x785c" (identifier "pcStack_b0") (+ "+") (number_literal "-0x785c")) () ")"))))) (; ";")) (expression_statement "pcVar25 = ftp_rest;" (assignment_expression "pcVar25 = ftp_rest" (identifier "pcVar25") (= "=") (identifier "ftp_rest")) (; ";")) (expression_statement "iVar6 = iStack_9c;" (assignment_expression "iVar6 = iStack_9c" (identifier "iVar6") (= "=") (identifier "iStack_9c")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_f0 = pcVar24 + 0x8c2b4;" (assignment_expression "pcStack_f0 = pcVar24 + 0x8c2b4" (identifier "pcStack_f0") (= "=") (binary_expression "pcVar24 + 0x8c2b4" (identifier "pcVar24") (+ "+") (number_literal "0x8c2b4"))) (; ";")) (expression_statement "piVar22 = *(int **)(pcVar24 + 0x84ac0);" (assignment_expression "piVar22 = *(int **)(pcVar24 + 0x84ac0)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(pcVar24 + 0x84ac0)" (* "*") (cast_expression "(int **)(pcVar24 + 0x84ac0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84ac0)" (( "(") (binary_expression "pcVar24 + 0x84ac0" (identifier "pcVar24") (+ "+") (number_literal "0x84ac0")) () ")"))))) (; ";")) (expression_statement "iStack_dc = *piVar22;" (assignment_expression "iStack_dc = *piVar22" (identifier "iStack_dc") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "uStack_d8 = uVar7;" (assignment_expression "uStack_d8 = uVar7" (identifier "uStack_d8") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "piStack_d4 = piVar23;" (assignment_expression "piStack_d4 = piVar23" (identifier "piStack_d4") (= "=") (identifier "piVar23")) (; ";")) (expression_statement "iStack_d0 = iVar5;" (assignment_expression "iStack_d0 = iVar5" (identifier "iStack_d0") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "pcStack_cc = pcVar25;" (assignment_expression "pcStack_cc = pcVar25" (identifier "pcStack_cc") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);" (assignment_expression "uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(pcVar24 + 0x8451c))(uVar3,param_4)" (parenthesized_expression "(**(code **)(pcVar24 + 0x8451c))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x8451c)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x8451c)" (* "*") (cast_expression "(code **)(pcVar24 + 0x8451c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x8451c)" (( "(") (binary_expression "pcVar24 + 0x8451c" (identifier "pcVar24") (+ "+") (number_literal "0x8451c")) () ")"))))) () ")")) (argument_list "(uVar3,param_4)" (( "(") (identifier "uVar3") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7)" (identifier "uVar7") (= "=") (call_expression "FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7)" (identifier "FUN_00029120") (argument_list "(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7)" (( "(") (binary_expression "*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8" (pointer_expression "*(int *)(pcStack_f0 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_f0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_f0 + -0x7fc4)" (( "(") (binary_expression "pcStack_f0 + -0x7fc4" (identifier "pcStack_f0") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x15c8")) (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);" (assignment_expression "uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(pcStack_f0 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x77c8))" (( "(") (pointer_expression "**(code **)(pcStack_f0 + -0x77c8)" (* "*") (pointer_expression "*(code **)(pcStack_f0 + -0x77c8)" (* "*") (cast_expression "(code **)(pcStack_f0 + -0x77c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_f0 + -0x77c8)" (( "(") (binary_expression "pcStack_f0 + -0x77c8" (identifier "pcStack_f0") (+ "+") (number_literal "-0x77c8")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" (identifier "uStack_f8") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8)" (( "(") (binary_expression "*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_f0 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcStack_f0 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_f0 + -0x7fc8)" (( "(") (binary_expression "pcStack_f0 + -0x7fc8" (identifier "pcStack_f0") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "iVar5 = fd_write(iVar6,uVar7,uVar3);" (assignment_expression "iVar5 = fd_write(iVar6,uVar7,uVar3)" (identifier "iVar5") (= "=") (call_expression "fd_write(iVar6,uVar7,uVar3)" (identifier "fd_write") (argument_list "(iVar6,uVar7,uVar3)" (( "(") (identifier "iVar6") (, ",") (identifier "uVar7") (, ",") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }\n  else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcStack_f0 + -0x7728))(uVar7);\n    iVar5 = 0x2c;\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_f0 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_f0 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_f0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_f0 + -0x7728)" (( "(") (binary_expression "pcStack_f0 + -0x7728" (identifier "pcStack_f0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_f0 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_e0);\n    if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_f0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_f0 + -0x7728)" (( "(") (binary_expression "pcStack_f0 + -0x7728" (identifier "pcStack_f0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_e0);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_e0)" (identifier "iVar5") (= "=") (call_expression "ftp_response(iVar6,&pcStack_e0)" (identifier "ftp_response") (argument_list "(iVar6,&pcStack_e0)" (( "(") (identifier "iVar6") (, ",") (pointer_expression "&pcStack_e0" (& "&") (identifier "pcStack_e0")) () ")")))) (; ";")) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }\n    }" ({ "{") (if_statement "if (*pcStack_e0 == '3') {\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }\n      else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }" (if "if") (parenthesized_expression "(*pcStack_e0 == '3')" (( "(") (binary_expression "*pcStack_e0 == '3'" (pointer_expression "*pcStack_e0" (* "*") (identifier "pcStack_e0")) (== "==") (char_literal "'3'" (' "'") (character "3") (' "'"))) () ")")) (compound_statement "{\n        iStack_e4 = iVar5;\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = iStack_e4;\n      }" ({ "{") (expression_statement "iStack_e4 = iVar5;" (assignment_expression "iStack_e4 = iVar5" (identifier "iStack_e4") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_f0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_f0 + -0x7728)" (( "(") (binary_expression "pcStack_f0 + -0x7728" (identifier "pcStack_f0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = iStack_e4;" (assignment_expression "iVar5 = iStack_e4" (identifier "iVar5") (= "=") (identifier "iStack_e4")) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }" (else "else") (compound_statement "{\n        (**(code **)(pcStack_f0 + -0x7728))();\n        iVar5 = 0x11;\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_f0 + -0x7728))();" (call_expression "(**(code **)(pcStack_f0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_f0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_f0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_f0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_f0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_f0 + -0x7728)" (( "(") (binary_expression "pcStack_f0 + -0x7728" (identifier "pcStack_f0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" (identifier "iVar5") (= "=") (number_literal "0x11")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (if_statement "if (iStack_dc == *piVar22) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_dc == *piVar22)" (( "(") (binary_expression "iStack_dc == *piVar22" (identifier "iStack_dc") (== "==") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (expression_statement "pcVar24 = *(code **)(pcStack_f0 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_f0 + -0x785c)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcStack_f0 + -0x785c)" (* "*") (cast_expression "(code **)(pcStack_f0 + -0x785c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_f0 + -0x785c)" (( "(") (binary_expression "pcStack_f0 + -0x785c" (identifier "pcStack_f0") (+ "+") (number_literal "-0x785c")) () ")"))))) (; ";")) (expression_statement "pcVar25 = ftp_retr;" (assignment_expression "pcVar25 = ftp_retr" (identifier "pcVar25") (= "=") (identifier "ftp_retr")) (; ";")) (expression_statement "iVar5 = iStack_dc;" (assignment_expression "iVar5 = iStack_dc" (identifier "iVar5") (= "=") (identifier "iStack_dc")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar23 = *(int **)(pcVar24 + 0x8496c);" (assignment_expression "piVar23 = *(int **)(pcVar24 + 0x8496c)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(pcVar24 + 0x8496c)" (* "*") (cast_expression "(int **)(pcVar24 + 0x8496c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x8496c)" (( "(") (binary_expression "pcVar24 + 0x8496c" (identifier "pcVar24") (+ "+") (number_literal "0x8496c")) () ")"))))) (; ";")) (expression_statement "iStack_11c = *piVar23;" (assignment_expression "iStack_11c = *piVar23" (identifier "iStack_11c") (= "=") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) (; ";")) (expression_statement "uStack_118 = uVar7;" (assignment_expression "uStack_118 = uVar7" (identifier "uStack_118") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "piStack_114 = piVar22;" (assignment_expression "piStack_114 = piVar22" (identifier "piStack_114") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "iStack_110 = iVar6;" (assignment_expression "iStack_110 = iVar6" (identifier "iStack_110") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "pcStack_10c = pcVar25;" (assignment_expression "pcStack_10c = pcVar25" (identifier "pcStack_10c") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);" (assignment_expression "ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" (identifier "ppcVar8") (= "=") (cast_expression "(char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" (identifier "FUN_00029120") (argument_list "(*(int *)(pcVar24 + 0x8419c) + -0x15c0)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x8419c) + -0x15c0" (pointer_expression "*(int *)(pcVar24 + 0x8419c)" (* "*") (cast_expression "(int *)(pcVar24 + 0x8419c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x8419c)" (( "(") (binary_expression "pcVar24 + 0x8419c" (identifier "pcVar24") (+ "+") (number_literal "0x8419c")) () ")")))) (+ "+") (number_literal "-0x15c0")) () ")"))))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);" (assignment_expression "iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar24 + 0x84998))(ppcVar8)" (parenthesized_expression "(**(code **)(pcVar24 + 0x84998))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x84998)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x84998)" (* "*") (cast_expression "(code **)(pcVar24 + 0x84998)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84998)" (( "(") (binary_expression "pcVar24 + 0x84998" (identifier "pcVar24") (+ "+") (number_literal "0x84998")) () ")"))))) () ")")) (argument_list "(ppcVar8)" (( "(") (identifier "ppcVar8") () ")")))) (; ";")) (expression_statement "uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);" (assignment_expression "uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x84198) + 0x40b8)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x84198) + 0x40b8" (pointer_expression "*(int *)(pcVar24 + 0x84198)" (* "*") (cast_expression "(int *)(pcVar24 + 0x84198)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x84198)" (( "(") (binary_expression "pcVar24 + 0x84198" (identifier "pcVar24") (+ "+") (number_literal "0x84198")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "ppcVar17 = ppcVar8;" (assignment_expression "ppcVar17 = ppcVar8" (identifier "ppcVar17") (= "=") (identifier "ppcVar8")) (; ";")) (expression_statement "iVar14 = fd_write(iVar5);" (assignment_expression "iVar14 = fd_write(iVar5)" (identifier "iVar14") (= "=") (call_expression "fd_write(iVar5)" (identifier "fd_write") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (if_statement "if (iVar14 < 0) {\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar14 < 0)" (( "(") (binary_expression "iVar14 < 0" (identifier "iVar14") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);\n    iVar14 = 0x2c;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x84a38))(ppcVar8);" (call_expression "(**(code **)(pcVar24 + 0x84a38))(ppcVar8)" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x84a38)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x84a38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x84a38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84a38)" (( "(") (binary_expression "pcVar24 + 0x84a38" (identifier "pcVar24") (+ "+") (number_literal "0x84a38")) () ")"))))) () ")")) (argument_list "(ppcVar8)" (( "(") (identifier "ppcVar8") () ")"))) (; ";")) (expression_statement "iVar14 = 0x2c;" (assignment_expression "iVar14 = 0x2c" (identifier "iVar14") (= "=") (number_literal "0x2c")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcVar24 + 0x84a38))();\n    ppcVar17 = &pcStack_120;\n    iVar14 = ftp_response(iVar5);\n    if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x84a38)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x84a38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x84a38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84a38)" (( "(") (binary_expression "pcVar24 + 0x84a38" (identifier "pcVar24") (+ "+") (number_literal "0x84a38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppcVar17 = &pcStack_120;" (assignment_expression "ppcVar17 = &pcStack_120" (identifier "ppcVar17") (= "=") (pointer_expression "&pcStack_120" (& "&") (identifier "pcStack_120"))) (; ";")) (expression_statement "iVar14 = ftp_response(iVar5);" (assignment_expression "iVar14 = ftp_response(iVar5)" (identifier "iVar14") (= "=") (call_expression "ftp_response(iVar5)" (identifier "ftp_response") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (if_statement "if (iVar14 == 7) {\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }" (if "if") (parenthesized_expression "(iVar14 == 7)" (( "(") (binary_expression "iVar14 == 7" (identifier "iVar14") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      ppcVar17 = (char **)0x31;\n      if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }\n    }" ({ "{") (expression_statement "ppcVar17 = (char **)0x31;" (assignment_expression "ppcVar17 = (char **)0x31" (identifier "ppcVar17") (= "=") (cast_expression "(char **)0x31" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x31"))) (; ";")) (if_statement "if (*pcStack_120 == '5') {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }\n      else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" (if "if") (parenthesized_expression "(*pcStack_120 == '5')" (( "(") (binary_expression "*pcStack_120 == '5'" (pointer_expression "*pcStack_120" (* "*") (identifier "pcStack_120")) (== "==") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xc;\n      }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x84a38)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x84a38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x84a38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84a38)" (( "(") (binary_expression "pcVar24 + 0x84a38" (identifier "pcVar24") (+ "+") (number_literal "0x84a38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar14 = 0xc;" (assignment_expression "iVar14 = 0xc" (identifier "iVar14") (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" (else "else") (if_statement "if (*pcStack_120 == '1') {\n        (**(code **)(pcVar24 + 0x84a38))();\n      }\n      else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" (if "if") (parenthesized_expression "(*pcStack_120 == '1')" (( "(") (binary_expression "*pcStack_120 == '1'" (pointer_expression "*pcStack_120" (* "*") (identifier "pcStack_120")) (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (compound_statement "{\n        (**(code **)(pcVar24 + 0x84a38))();\n      }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x84a38)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x84a38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x84a38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84a38)" (( "(") (binary_expression "pcVar24 + 0x84a38" (identifier "pcVar24") (+ "+") (number_literal "0x84a38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" (else "else") (compound_statement "{\n        (**(code **)(pcVar24 + 0x84a38))();\n        iVar14 = 0xe;\n      }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x84a38))();" (call_expression "(**(code **)(pcVar24 + 0x84a38))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84a38))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x84a38)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x84a38)" (* "*") (cast_expression "(code **)(pcVar24 + 0x84a38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84a38)" (( "(") (binary_expression "pcVar24 + 0x84a38" (identifier "pcVar24") (+ "+") (number_literal "0x84a38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar14 = 0xe;" (assignment_expression "iVar14 = 0xe" (identifier "iVar14") (= "=") (number_literal "0xe")) (; ";")) (} "}")))))) (} "}"))) (} "}")))) (if_statement "if (iStack_11c == *piVar23) {\n    return iVar14;\n  }" (if "if") (parenthesized_expression "(iStack_11c == *piVar23)" (( "(") (binary_expression "iStack_11c == *piVar23" (identifier "iStack_11c") (== "==") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) () ")")) (compound_statement "{\n    return iVar14;\n  }" ({ "{") (return_statement "return iVar14;" (return "return") (identifier "iVar14") (; ";")) (} "}"))) (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x84904);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x84904)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x84904)" (* "*") (cast_expression "(code **)(pcVar24 + 0x84904)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84904)" (( "(") (binary_expression "pcVar24 + 0x84904" (identifier "pcVar24") (+ "+") (number_literal "0x84904")) () ")"))))) (; ";")) (expression_statement "iVar14 = iStack_11c;" (assignment_expression "iVar14 = iStack_11c" (identifier "iVar14") (= "=") (identifier "iStack_11c")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_198 = pcVar24 + 0x8c004;" (assignment_expression "pcStack_198 = pcVar24 + 0x8c004" (identifier "pcStack_198") (= "=") (binary_expression "pcVar24 + 0x8c004" (identifier "pcVar24") (+ "+") (number_literal "0x8c004"))) (; ";")) (expression_statement "puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);" (assignment_expression "puStack_188 = *(undefined4 **)(pcVar24 + 0x84810)" (identifier "puStack_188") (= "=") (pointer_expression "*(undefined4 **)(pcVar24 + 0x84810)" (* "*") (cast_expression "(undefined4 **)(pcVar24 + 0x84810)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84810)" (( "(") (binary_expression "pcVar24 + 0x84810" (identifier "pcVar24") (+ "+") (number_literal "0x84810")) () ")"))))) (; ";")) (expression_statement "pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);" (assignment_expression "pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20)" (identifier "pbStack_138") (= "=") (cast_expression "(byte *)((ulonglong)uVar26 >> 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "pbStack_184 = pbStack_138;" (assignment_expression "pbStack_184 = pbStack_138" (identifier "pbStack_184") (= "=") (identifier "pbStack_138")) (; ";")) (expression_statement "pcStack_17c = (char *)*puStack_188;" (assignment_expression "pcStack_17c = (char *)*puStack_188" (identifier "pcStack_17c") (= "=") (cast_expression "(char *)*puStack_188" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puStack_188" (* "*") (identifier "puStack_188")))) (; ";")) (expression_statement "*pbStack_138 = 0;" (assignment_expression "*pbStack_138 = 0" (pointer_expression "*pbStack_138" (* "*") (identifier "pbStack_138")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppcStack_178 = ppcVar8;" (assignment_expression "ppcStack_178 = ppcVar8" (identifier "ppcStack_178") (= "=") (identifier "ppcVar8")) (; ";")) (expression_statement "piStack_174 = piVar23;" (assignment_expression "piStack_174 = piVar23" (identifier "piStack_174") (= "=") (identifier "piVar23")) (; ";")) (expression_statement "iStack_170 = iVar5;" (assignment_expression "iStack_170 = iVar5" (identifier "iStack_170") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "pcStack_16c = param_1;" (assignment_expression "pcStack_16c = param_1" (identifier "pcStack_16c") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (iVar6 == 0) {\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;" (assignment_expression "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0" (identifier "iVar5") (= "=") (binary_expression "*(int *)(pcVar24 + 0x84040) + -0x15b0" (pointer_expression "*(int *)(pcVar24 + 0x84040)" (* "*") (cast_expression "(int *)(pcVar24 + 0x84040)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x84040)" (( "(") (binary_expression "pcVar24 + 0x84040" (identifier "pcVar24") (+ "+") (number_literal "0x84040")) () ")")))) (+ "+") (number_literal "-0x15b0"))) (; ";")) (} "}")) (else_clause "else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" (else "else") (if_statement "if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0'" (pointer_expression "*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b)" (* "*") (cast_expression "(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x8405c) + 0x16b)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x8405c) + 0x16b" (pointer_expression "*(int *)(pcVar24 + 0x8405c)" (* "*") (cast_expression "(int *)(pcVar24 + 0x8405c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x8405c)" (( "(") (binary_expression "pcVar24 + 0x8405c" (identifier "pcVar24") (+ "+") (number_literal "0x8405c")) () ")")))) (+ "+") (number_literal "0x16b")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar19 = 1;\n    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;\n  }" ({ "{") (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8" (identifier "iVar5") (= "=") (binary_expression "*(int *)(pcVar24 + 0x84040) + -0x15b8" (pointer_expression "*(int *)(pcVar24 + 0x84040)" (* "*") (cast_expression "(int *)(pcVar24 + 0x84040)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x84040)" (( "(") (binary_expression "pcVar24 + 0x84040" (identifier "pcVar24") (+ "+") (number_literal "0x84040")) () ")")))) (+ "+") (number_literal "-0x15b8"))) (; ";")) (} "}")) (else_clause "else {\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" (else "else") (compound_statement "{\n    iVar19 = 1;\n    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;\n  }" ({ "{") (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";")) (expression_statement "debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);" (call_expression "debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8)" (identifier "debug_logprintf") (argument_list "(*(int *)(pcVar24 + 0x84040) + -0x15a8)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x84040) + -0x15a8" (pointer_expression "*(int *)(pcVar24 + 0x84040)" (* "*") (cast_expression "(int *)(pcVar24 + 0x84040)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x84040)" (( "(") (binary_expression "pcVar24 + 0x84040" (identifier "pcVar24") (+ "+") (number_literal "0x84040")) () ")")))) (+ "+") (number_literal "-0x15a8")) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (identifier "iVar5") (= "=") (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_198 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_198 + -0x7fc4)" (( "(") (binary_expression "pcStack_198 + -0x7fc4" (identifier "pcStack_198") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x15b8"))) (; ";")) (} "}")))))) (expression_statement "iVar6 = *(int *)(pcStack_198 + -0x7c70);" (assignment_expression "iVar6 = *(int *)(pcStack_198 + -0x7c70)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcStack_198 + -0x7c70)" (* "*") (cast_expression "(int *)(pcStack_198 + -0x7c70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_198 + -0x7c70)" (( "(") (binary_expression "pcStack_198 + -0x7c70" (identifier "pcStack_198") (+ "+") (number_literal "-0x7c70")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);" (assignment_expression "uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8)" (( "(") (binary_expression "*(int *)(pcStack_198 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcStack_198 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_198 + -0x7fc8)" (( "(") (binary_expression "pcStack_198 + -0x7fc8" (identifier "pcStack_198") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);" (assignment_expression "uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(pcStack_198 + -0x7d38)" (* "*") (cast_expression "(undefined4 *)(pcStack_198 + -0x7d38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_198 + -0x7d38)" (( "(") (binary_expression "pcStack_198 + -0x7d38" (identifier "pcStack_198") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";")) (expression_statement "iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (identifier "iVar21") (= "=") (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_198 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_198 + -0x7fc4)" (( "(") (binary_expression "pcStack_198 + -0x7fc4" (identifier "pcStack_198") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x15b8"))) (; ";")) (do_statement "do {\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  } while (ppcVar9 == (char **)&DAT_00000001);" (do "do") (compound_statement "{\n    while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }\n    iVar19 = 1;\n  }" ({ "{") (while_statement "while( true ) {\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);\n      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);\n      ppcVar8 = ppcVar9;\n      uStack_1a0 = uVar26;\n      iVar5 = fd_write(iVar14);\n      if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar9 = (char **)(iVar19 + 1);\n      (**(code **)(pcStack_198 + -0x7728))();\n      ppcVar8 = &pcStack_180;\n      iVar11 = ftp_response(iVar14);\n      iVar5 = iVar21;\n      if (iVar11 != 7) break;\n      ppcVar8 = (char **)0x31;\n      if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }\n      iStack_18c = iVar11;\n      (**(code **)(pcStack_198 + -0x7728))();\n      pcStack_180 = (char *)0x0;\n      iVar11 = iStack_18c;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" ({ "{") (expression_statement "ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);" (assignment_expression "ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17)" (identifier "ppcVar9") (= "=") (cast_expression "(char **)FUN_00029120(iVar5,ppcVar17)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00029120(iVar5,ppcVar17)" (identifier "FUN_00029120") (argument_list "(iVar5,ppcVar17)" (( "(") (identifier "iVar5") (, ",") (identifier "ppcVar17") () ")"))))) (; ";")) (expression_statement "puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);" (assignment_expression "puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_198 + -0x77c8))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_198 + -0x77c8))" (( "(") (pointer_expression "**(code **)(pcStack_198 + -0x77c8)" (* "*") (pointer_expression "*(code **)(pcStack_198 + -0x77c8)" (* "*") (cast_expression "(code **)(pcStack_198 + -0x77c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_198 + -0x77c8)" (( "(") (binary_expression "pcStack_198 + -0x77c8" (identifier "pcStack_198") (+ "+") (number_literal "-0x77c8")) () ")"))))) () ")")) (argument_list "(ppcVar9)" (( "(") (identifier "ppcVar9") () ")"))))) (; ";")) (expression_statement "ppcVar8 = ppcVar9;" (assignment_expression "ppcVar8 = ppcVar9" (identifier "ppcVar8") (= "=") (identifier "ppcVar9")) (; ";")) (expression_statement "uStack_1a0 = uVar26;" (assignment_expression "uStack_1a0 = uVar26" (identifier "uStack_1a0") (= "=") (identifier "uVar26")) (; ";")) (expression_statement "iVar5 = fd_write(iVar14);" (assignment_expression "iVar5 = fd_write(iVar14)" (identifier "iVar5") (= "=") (call_expression "fd_write(iVar14)" (identifier "fd_write") (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);\n        iVar11 = 0x2c;\n        goto LAB_0002b57c;\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_198 + -0x7728))(ppcVar9);" (call_expression "(**(code **)(pcStack_198 + -0x7728))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_198 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_198 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_198 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_198 + -0x7728)" (( "(") (binary_expression "pcStack_198 + -0x7728" (identifier "pcStack_198") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(ppcVar9)" (( "(") (identifier "ppcVar9") () ")"))) (; ";")) (expression_statement "iVar11 = 0x2c;" (assignment_expression "iVar11 = 0x2c" (identifier "iVar11") (= "=") (number_literal "0x2c")) (; ";")) (goto_statement "goto LAB_0002b57c;" (goto "goto") (statement_identifier "LAB_0002b57c") (; ";")) (} "}"))) (expression_statement "ppcVar9 = (char **)(iVar19 + 1);" (assignment_expression "ppcVar9 = (char **)(iVar19 + 1)" (identifier "ppcVar9") (= "=") (cast_expression "(char **)(iVar19 + 1)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + 1)" (( "(") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcStack_198 + -0x7728))();" (call_expression "(**(code **)(pcStack_198 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_198 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_198 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_198 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_198 + -0x7728)" (( "(") (binary_expression "pcStack_198 + -0x7728" (identifier "pcStack_198") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppcVar8 = &pcStack_180;" (assignment_expression "ppcVar8 = &pcStack_180" (identifier "ppcVar8") (= "=") (pointer_expression "&pcStack_180" (& "&") (identifier "pcStack_180"))) (; ";")) (expression_statement "iVar11 = ftp_response(iVar14);" (assignment_expression "iVar11 = ftp_response(iVar14)" (identifier "iVar11") (= "=") (call_expression "ftp_response(iVar14)" (identifier "ftp_response") (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")")))) (; ";")) (expression_statement "iVar5 = iVar21;" (assignment_expression "iVar5 = iVar21" (identifier "iVar5") (= "=") (identifier "iVar21")) (; ";")) (if_statement "if (iVar11 != 7) break;" (if "if") (parenthesized_expression "(iVar11 != 7)" (( "(") (binary_expression "iVar11 != 7" (identifier "iVar11") (!= "!=") (number_literal "7")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppcVar8 = (char **)0x31;" (assignment_expression "ppcVar8 = (char **)0x31" (identifier "ppcVar8") (= "=") (cast_expression "(char **)0x31" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x31"))) (; ";")) (if_statement "if (*pcStack_180 == '5') {\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }\n      else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" (if "if") (parenthesized_expression "(*pcStack_180 == '5')" (( "(") (binary_expression "*pcStack_180 == '5'" (pointer_expression "*pcStack_180" (* "*") (identifier "pcStack_180")) (== "==") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        iVar19 = 0;\n        iVar11 = 0xc;\n      }" ({ "{") (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = 0xc;" (assignment_expression "iVar11 = 0xc" (identifier "iVar11") (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" (else "else") (if_statement "if (*pcStack_180 == '1') {\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }\n      else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" (if "if") (parenthesized_expression "(*pcStack_180 == '1')" (( "(") (binary_expression "*pcStack_180 == '1'" (pointer_expression "*pcStack_180" (* "*") (identifier "pcStack_180")) (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (compound_statement "{\n        *pbStack_184 = (byte)iVar19 ^ 1;\n        iVar19 = 1;\n      }" ({ "{") (expression_statement "*pbStack_184 = (byte)iVar19 ^ 1;" (assignment_expression "*pbStack_184 = (byte)iVar19 ^ 1" (pointer_expression "*pbStack_184" (* "*") (identifier "pbStack_184")) (= "=") (binary_expression "(byte)iVar19 ^ 1" (cast_expression "(byte)iVar19" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar19")) (^ "^") (number_literal "1"))) (; ";")) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" (else "else") (compound_statement "{\n        iVar19 = 0;\n        iVar11 = 0xe;\n      }" ({ "{") (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = 0xe;" (assignment_expression "iVar11 = 0xe" (identifier "iVar11") (= "=") (number_literal "0xe")) (; ";")) (} "}")))))) (expression_statement "iStack_18c = iVar11;" (assignment_expression "iStack_18c = iVar11" (identifier "iStack_18c") (= "=") (identifier "iVar11")) (; ";")) (expression_statement "(**(code **)(pcStack_198 + -0x7728))();" (call_expression "(**(code **)(pcStack_198 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_198 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_198 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_198 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_198 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_198 + -0x7728)" (( "(") (binary_expression "pcStack_198 + -0x7728" (identifier "pcStack_198") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_180 = (char *)0x0;" (assignment_expression "pcStack_180 = (char *)0x0" (identifier "pcStack_180") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar11 = iStack_18c;" (assignment_expression "iVar11 = iStack_18c" (identifier "iVar11") (= "=") (identifier "iStack_18c")) (; ";")) (if_statement "if (param_4 != 0) goto LAB_0002b570;" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002b570;" (goto "goto") (statement_identifier "LAB_0002b570") (; ";"))) (if_statement "if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))\n      goto LAB_0002b57c;" (if "if") (parenthesized_expression "((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))" (( "(") (binary_expression "(ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1)" (parenthesized_expression "(ppcVar9 != (char **)&DAT_00000001)" (( "(") (binary_expression "ppcVar9 != (char **)&DAT_00000001" (identifier "ppcVar9") (!= "!=") (cast_expression "(char **)&DAT_00000001" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) () ")")) (|| "||") (parenthesized_expression "(bVar1 = iVar19 != 0, iVar19 = 1, bVar1)" (( "(") (comma_expression "bVar1 = iVar19 != 0, iVar19 = 1, bVar1" (assignment_expression "bVar1 = iVar19 != 0" (identifier "bVar1") (= "=") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0"))) (, ",") (comma_expression "iVar19 = 1, bVar1" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (, ",") (identifier "bVar1"))) () ")"))) () ")")) (goto_statement "goto LAB_0002b57c;" (goto "goto") (statement_identifier "LAB_0002b57c") (; ";"))) (} "}"))) (if_statement "if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }\n      break;\n    }" ({ "{") (labeled_statement "LAB_0002b570:\n      if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }" (statement_identifier "LAB_0002b570") (: ":") (if_statement "if ((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }" (if "if") (parenthesized_expression "((ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'))" (( "(") (binary_expression "(ppcVar9 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')" (parenthesized_expression "(ppcVar9 == (char **)&DAT_00000001)" (( "(") (binary_expression "ppcVar9 == (char **)&DAT_00000001" (identifier "ppcVar9") (== "==") (cast_expression "(char **)&DAT_00000001" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0'" (pointer_expression "*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" (* "*") (cast_expression "(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_198 + -0x7fa8) + 0x16b)" (( "(") (binary_expression "*(int *)(pcStack_198 + -0x7fa8) + 0x16b" (pointer_expression "*(int *)(pcStack_198 + -0x7fa8)" (* "*") (cast_expression "(int *)(pcStack_198 + -0x7fa8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_198 + -0x7fa8)" (( "(") (binary_expression "pcStack_198 + -0x7fa8" (identifier "pcStack_198") (+ "+") (number_literal "-0x7fa8")) () ")")))) (+ "+") (number_literal "0x16b")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        iStack_18c = iVar11;\n        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);\n        iVar11 = iStack_18c;\n      }" ({ "{") (expression_statement "iStack_18c = iVar11;" (assignment_expression "iStack_18c = iVar11" (identifier "iStack_18c") (= "=") (identifier "iVar11")) (; ";")) (expression_statement "debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);" (call_expression "debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590)" (identifier "debug_logprintf") (argument_list "(*(int *)(pcStack_198 + -0x7fc4) + -0x1590)" (( "(") (binary_expression "*(int *)(pcStack_198 + -0x7fc4) + -0x1590" (pointer_expression "*(int *)(pcStack_198 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_198 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_198 + -0x7fc4)" (( "(") (binary_expression "pcStack_198 + -0x7fc4" (identifier "pcStack_198") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1590")) () ")"))) (; ";")) (expression_statement "iVar11 = iStack_18c;" (assignment_expression "iVar11 = iStack_18c" (identifier "iVar11") (= "=") (identifier "iStack_18c")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppcVar9 == (char **)&DAT_00000001)" (( "(") (binary_expression "ppcVar9 == (char **)&DAT_00000001" (identifier "ppcVar9") (== "==") (cast_expression "(char **)&DAT_00000001" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) () ")")) (; ";")) (labeled_statement "LAB_0002b57c:\n  if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }" (statement_identifier "LAB_0002b57c") (: ":") (if_statement "if (pcStack_17c == (char *)*puStack_188) {\n    return iVar11;\n  }" (if "if") (parenthesized_expression "(pcStack_17c == (char *)*puStack_188)" (( "(") (binary_expression "pcStack_17c == (char *)*puStack_188" (identifier "pcStack_17c") (== "==") (cast_expression "(char *)*puStack_188" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puStack_188" (* "*") (identifier "puStack_188")))) () ")")) (compound_statement "{\n    return iVar11;\n  }" ({ "{") (return_statement "return iVar11;" (return "return") (identifier "iVar11") (; ";")) (} "}")))) (expression_statement "pcVar24 = *(code **)(pcStack_198 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_198 + -0x785c)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcStack_198 + -0x785c)" (* "*") (cast_expression "(code **)(pcStack_198 + -0x785c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_198 + -0x785c)" (( "(") (binary_expression "pcStack_198 + -0x785c" (identifier "pcStack_198") (+ "+") (number_literal "-0x785c")) () ")"))))) (; ";")) (expression_statement "pcVar25 = ftp_syst;" (assignment_expression "pcVar25 = ftp_syst" (identifier "pcVar25") (= "=") (identifier "ftp_syst")) (; ";")) (expression_statement "pcVar13 = pcStack_17c;" (assignment_expression "pcVar13 = pcStack_17c" (identifier "pcVar13") (= "=") (identifier "pcStack_17c")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_1e0 = pcVar24 + 0x8bd8c;" (assignment_expression "pcStack_1e0 = pcVar24 + 0x8bd8c" (identifier "pcStack_1e0") (= "=") (binary_expression "pcVar24 + 0x8bd8c" (identifier "pcVar24") (+ "+") (number_literal "0x8bd8c"))) (; ";")) (expression_statement "piVar22 = *(int **)(pcVar24 + 0x84598);" (assignment_expression "piVar22 = *(int **)(pcVar24 + 0x84598)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(pcVar24 + 0x84598)" (* "*") (cast_expression "(int **)(pcVar24 + 0x84598)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84598)" (( "(") (binary_expression "pcVar24 + 0x84598" (identifier "pcVar24") (+ "+") (number_literal "0x84598")) () ")"))))) (; ";")) (expression_statement "iStack_1d4 = *piVar22;" (assignment_expression "iStack_1d4 = *piVar22" (identifier "iStack_1d4") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "ppcStack_1d0 = ppcVar9;" (assignment_expression "ppcStack_1d0 = ppcVar9" (identifier "ppcStack_1d0") (= "=") (identifier "ppcVar9")) (; ";")) (expression_statement "iStack_1cc = iVar19;" (assignment_expression "iStack_1cc = iVar19" (identifier "iStack_1cc") (= "=") (identifier "iVar19")) (; ";")) (expression_statement "iStack_1c8 = iVar14;" (assignment_expression "iStack_1c8 = iVar14" (identifier "iStack_1c8") (= "=") (identifier "iVar14")) (; ";")) (expression_statement "iStack_1c4 = iVar6 + -0x6ee0;" (assignment_expression "iStack_1c4 = iVar6 + -0x6ee0" (identifier "iStack_1c4") (= "=") (binary_expression "iVar6 + -0x6ee0" (identifier "iVar6") (+ "+") (number_literal "-0x6ee0"))) (; ";")) (expression_statement "iStack_1c0 = iVar21;" (assignment_expression "iStack_1c0 = iVar21" (identifier "iStack_1c0") (= "=") (identifier "iVar21")) (; ";")) (expression_statement "ppcStack_1bc = ppcVar17;" (assignment_expression "ppcStack_1bc = ppcVar17" (identifier "ppcStack_1bc") (= "=") (identifier "ppcVar17")) (; ";")) (expression_statement "uStack_1b8 = uVar7;" (assignment_expression "uStack_1b8 = uVar7" (identifier "uStack_1b8") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "pcStack_1b4 = pcVar25;" (assignment_expression "pcStack_1b4 = pcVar25" (identifier "pcStack_1b4") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);" (assignment_expression "ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" (identifier "ppcVar9") (= "=") (cast_expression "(char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" (identifier "FUN_00029120") (argument_list "(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x83dc8) + -0x157c" (pointer_expression "*(int *)(pcVar24 + 0x83dc8)" (* "*") (cast_expression "(int *)(pcVar24 + 0x83dc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x83dc8)" (( "(") (binary_expression "pcVar24 + 0x83dc8" (identifier "pcVar24") (+ "+") (number_literal "0x83dc8")) () ")")))) (+ "+") (number_literal "-0x157c")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);" (assignment_expression "uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x77c8))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x77c8)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x77c8)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x77c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x77c8)" (( "(") (binary_expression "pcStack_1e0 + -0x77c8" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x77c8")) () ")"))))) () ")")) (argument_list "(ppcVar9)" (( "(") (identifier "ppcVar9") () ")")))) (; ";")) (expression_statement "uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" (identifier "uStack_1e8") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8)" (( "(") (binary_expression "*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc8)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc8" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "ppcVar17 = ppcVar9;" (assignment_expression "ppcVar17 = ppcVar9" (identifier "ppcVar17") (= "=") (identifier "ppcVar9")) (; ";")) (expression_statement "iVar5 = fd_write(pcVar13,ppcVar9,uVar7);" (assignment_expression "iVar5 = fd_write(pcVar13,ppcVar9,uVar7)" (identifier "iVar5") (= "=") (call_expression "fd_write(pcVar13,ppcVar9,uVar7)" (identifier "fd_write") (argument_list "(pcVar13,ppcVar9,uVar7)" (( "(") (identifier "pcVar13") (, ",") (identifier "ppcVar9") (, ",") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }\n  else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);\n  }" ({ "{") (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(ppcVar9)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7728)" (( "(") (binary_expression "pcStack_1e0 + -0x7728" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(ppcVar9)" (( "(") (identifier "ppcVar9") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_1e0 + -0x7728))();\n    ppcVar17 = &pcStack_1d8;\n    iVar5 = ftp_response(pcVar13);\n    pcVar20 = pcStack_1d8;\n    if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))();" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7728)" (( "(") (binary_expression "pcStack_1e0 + -0x7728" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppcVar17 = &pcStack_1d8;" (assignment_expression "ppcVar17 = &pcStack_1d8" (identifier "ppcVar17") (= "=") (pointer_expression "&pcStack_1d8" (& "&") (identifier "pcStack_1d8"))) (; ";")) (expression_statement "iVar5 = ftp_response(pcVar13);" (assignment_expression "iVar5 = ftp_response(pcVar13)" (identifier "iVar5") (= "=") (call_expression "ftp_response(pcVar13)" (identifier "ftp_response") (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")")))) (; ";")) (expression_statement "pcVar20 = pcStack_1d8;" (assignment_expression "pcVar20 = pcStack_1d8" (identifier "pcVar20") (= "=") (identifier "pcStack_1d8")) (; ";")) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }\n    }" ({ "{") (if_statement "if (*pcStack_1d8 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" (if "if") (parenthesized_expression "(*pcStack_1d8 == '5')" (( "(") (binary_expression "*pcStack_1d8 == '5'" (pointer_expression "*pcStack_1d8" (* "*") (identifier "pcStack_1d8")) (== "==") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        iVar5 = 0xf;\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n        pcVar13 = pcStack_1d8;\n      }" ({ "{") (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" (identifier "iVar5") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7728)" (( "(") (binary_expression "pcStack_1e0 + -0x7728" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(pcStack_1d8)" (( "(") (identifier "pcStack_1d8") () ")"))) (; ";")) (expression_statement "pcVar13 = pcStack_1d8;" (assignment_expression "pcVar13 = pcStack_1d8" (identifier "pcVar13") (= "=") (identifier "pcStack_1d8")) (; ";")) (} "}")) (else_clause "else {\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" (else "else") (compound_statement "{\n        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);\n        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);\n        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);\n        ppcVar17 = (char **)(iVar6 + 0x4a48);\n        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);\n        *puVar10 = 2;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);\n        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);\n      }" ({ "{") (expression_statement "iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);" (assignment_expression "iVar6 = *(int *)(pcStack_1e0 + -0x7fc8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc8)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc8" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc8")) () ")"))))) (; ";")) (expression_statement "uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);" (assignment_expression "uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x794c))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x794c)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x794c)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x794c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x794c)" (( "(") (binary_expression "pcStack_1e0 + -0x794c" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x794c")) () ")"))))) () ")")) (argument_list "(pcStack_1d8)" (( "(") (identifier "pcStack_1d8") () ")")))) (; ";")) (expression_statement "(**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);" (call_expression "(**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7888))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7888)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7888)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7888)" (( "(") (binary_expression "pcStack_1e0 + -0x7888" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7888")) () ")"))))) () ")")) (argument_list "(pcVar20,iVar6 + 0x4a48)" (( "(") (identifier "pcVar20") (, ",") (binary_expression "iVar6 + 0x4a48" (identifier "iVar6") (+ "+") (number_literal "0x4a48")) () ")"))) (; ";")) (expression_statement "ppcVar17 = (char **)(iVar6 + 0x4a48);" (assignment_expression "ppcVar17 = (char **)(iVar6 + 0x4a48)" (identifier "ppcVar17") (= "=") (cast_expression "(char **)(iVar6 + 0x4a48)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x4a48)" (( "(") (binary_expression "iVar6 + 0x4a48" (identifier "iVar6") (+ "+") (number_literal "0x4a48")) () ")")))) (; ";")) (expression_statement "pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);" (assignment_expression "pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(**(code **)(pcStack_1e0 + -0x7888))(0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_1e0 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7888))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7888)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7888)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7888)" (( "(") (binary_expression "pcStack_1e0 + -0x7888" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7888")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*puVar10 = 2;" (assignment_expression "*puVar10 = 2" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "2")) (; ";")) (if_statement "if (pcVar13 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }\n        else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(pcVar13 == (char *)0x0)" (( "(") (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 "{\nLAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;\n        }" ({ "{") (labeled_statement "LAB_0002b8d8:\n          *ppcVar8 = (char *)0x5;" (statement_identifier "LAB_0002b8d8") (: ":") (expression_statement "*ppcVar8 = (char *)0x5;" (assignment_expression "*ppcVar8 = (char *)0x5" (pointer_expression "*ppcVar8" (* "*") (identifier "ppcVar8")) (= "=") (cast_expression "(char *)0x5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";"))) (} "}")) (else_clause "else {\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n          if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }\n        }" ({ "{") (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" (identifier "ppcVar17") (= "=") (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574)" (( "(") (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc4" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1574")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" (( "(") (binary_expression "pcStack_1e0 + -0x7e9c" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n            *ppcVar8 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *ppcVar8 = (char *)0x1;\n          }" ({ "{") (expression_statement "*ppcVar8 = (char *)0x1;" (assignment_expression "*ppcVar8 = (char *)0x1" (pointer_expression "*ppcVar8" (* "*") (identifier "ppcVar8")) (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }" (else "else") (compound_statement "{\n            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }\n          }" ({ "{") (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))\n                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" (( "(") (binary_expression "pcStack_1e0 + -0x7e9c" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570)" (( "(") (identifier "pcVar13") (, ",") (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc4" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1570")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);\n              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);\n              *ppcVar8 = (char *)0x0;\n              ppcVar17 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);\n              if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }\n            }" ({ "{") (expression_statement "iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_1e0 + -0x7fc4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc4" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc4")) () ")"))))) (; ";")) (expression_statement "pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);" (assignment_expression "pcVar24 = *(code **)(pcStack_1e0 + -0x7db0)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcStack_1e0 + -0x7db0)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7db0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7db0)" (( "(") (binary_expression "pcStack_1e0 + -0x7db0" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7db0")) () ")"))))) (; ";")) (expression_statement "*ppcVar8 = (char *)0x0;" (assignment_expression "*ppcVar8 = (char *)0x0" (pointer_expression "*ppcVar8" (* "*") (identifier "ppcVar8")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar17 = (char **)(iVar6 + -0x1568);" (assignment_expression "ppcVar17 = (char **)(iVar6 + -0x1568)" (identifier "ppcVar17") (= "=") (cast_expression "(char **)(iVar6 + -0x1568)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + -0x1568)" (( "(") (binary_expression "iVar6 + -0x1568" (identifier "iVar6") (+ "+") (number_literal "-0x1568")) () ")")))) (; ";")) (expression_statement "iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);" (assignment_expression "iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11)" (identifier "iVar6") (= "=") (call_expression "(*pcVar24)(uVar7,ppcVar17,0x11)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(uVar7,ppcVar17,0x11)" (( "(") (identifier "uVar7") (, ",") (identifier "ppcVar17") (, ",") (number_literal "0x11") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                *puVar10 = 0;\n              }\n              else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *puVar10 = 0;\n              }" ({ "{") (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }" (else "else") (compound_statement "{\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);\n                if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }\n              }" ({ "{") (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" (identifier "ppcVar17") (= "=") (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554)" (( "(") (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc4" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1554")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7db0))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7db0)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7db0)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7db0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7db0)" (( "(") (binary_expression "pcStack_1e0 + -0x7db0" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7db0")) () ")"))))) () ")")) (argument_list "(uVar7,ppcVar17,0x29)" (( "(") (identifier "uVar7") (, ",") (identifier "ppcVar17") (, ",") (number_literal "0x29") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                  *puVar10 = 1;\n                }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  *puVar10 = 1;\n                }" ({ "{") (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }" (else "else") (compound_statement "{\n              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n              if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar8 = (char *)0x2;\n            }" ({ "{") (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" (identifier "ppcVar17") (= "=") (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528)" (( "(") (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc4" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1528")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" (( "(") (binary_expression "pcStack_1e0 + -0x7e9c" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" ({ "{") (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" (identifier "ppcVar17") (= "=") (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c)" (( "(") (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc4" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x151c")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" (( "(") (binary_expression "pcStack_1e0 + -0x7e9c" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                  if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" ({ "{") (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" (identifier "ppcVar17") (= "=") (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510)" (( "(") (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc4" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1510")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" (( "(") (binary_expression "pcStack_1e0 + -0x7e9c" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                    *ppcVar8 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    *ppcVar8 = (char *)0x3;\n                  }" ({ "{") (expression_statement "*ppcVar8 = (char *)0x3;" (assignment_expression "*ppcVar8 = (char *)0x3" (pointer_expression "*ppcVar8" (* "*") (identifier "ppcVar8")) (= "=") (cast_expression "(char *)0x3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (} "}")) (else_clause "else {\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }" (else "else") (compound_statement "{\n                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar8 = (char *)0x4;\n                  }" ({ "{") (expression_statement "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);" (assignment_expression "ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" (identifier "ppcVar17") (= "=") (cast_expression "(char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508)" (( "(") (binary_expression "*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508" (pointer_expression "*(int *)(pcStack_1e0 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_1e0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7fc4)" (( "(") (binary_expression "pcStack_1e0 + -0x7fc4" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1508")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);" (assignment_expression "iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7e9c)" (( "(") (binary_expression "pcStack_1e0 + -0x7e9c" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_0002b8d8;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002b8d8;" (goto "goto") (statement_identifier "LAB_0002b8d8") (; ";"))) (expression_statement "*ppcVar8 = (char *)0x4;" (assignment_expression "*ppcVar8 = (char *)0x4" (pointer_expression "*ppcVar8" (* "*") (identifier "ppcVar8")) (= "=") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0002b804;" (goto "goto") (statement_identifier "LAB_0002b804") (; ";")) (} "}"))) (} "}"))) (expression_statement "*ppcVar8 = (char *)0x2;" (assignment_expression "*ppcVar8 = (char *)0x2" (pointer_expression "*ppcVar8" (* "*") (identifier "ppcVar8")) (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (labeled_statement "LAB_0002b804:\n        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);" (statement_identifier "LAB_0002b804") (: ":") (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7728)" (( "(") (binary_expression "pcStack_1e0 + -0x7728" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";"))) (expression_statement "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);" (call_expression "(**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8)" (parenthesized_expression "(**(code **)(pcStack_1e0 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_1e0 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_1e0 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x7728)" (( "(") (binary_expression "pcStack_1e0 + -0x7728" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(pcStack_1d8)" (( "(") (identifier "pcStack_1d8") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (if_statement "if (iStack_1d4 == *piVar22) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_1d4 == *piVar22)" (( "(") (binary_expression "iStack_1d4 == *piVar22" (identifier "iStack_1d4") (== "==") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (expression_statement "pcVar24 = *(code **)(pcStack_1e0 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_1e0 + -0x785c)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcStack_1e0 + -0x785c)" (* "*") (cast_expression "(code **)(pcStack_1e0 + -0x785c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e0 + -0x785c)" (( "(") (binary_expression "pcStack_1e0 + -0x785c" (identifier "pcStack_1e0") (+ "+") (number_literal "-0x785c")) () ")"))))) (; ";")) (expression_statement "pcVar25 = ftp_pwd;" (assignment_expression "pcVar25 = ftp_pwd" (identifier "pcVar25") (= "=") (identifier "ftp_pwd")) (; ";")) (expression_statement "iVar6 = iStack_1d4;" (assignment_expression "iVar6 = iStack_1d4" (identifier "iVar6") (= "=") (identifier "iStack_1d4")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_220 = pcVar24 + 0x8ba8c;" (assignment_expression "pcStack_220 = pcVar24 + 0x8ba8c" (identifier "pcStack_220") (= "=") (binary_expression "pcVar24 + 0x8ba8c" (identifier "pcVar24") (+ "+") (number_literal "0x8ba8c"))) (; ";")) (expression_statement "piVar23 = *(int **)(pcVar24 + 0x84298);" (assignment_expression "piVar23 = *(int **)(pcVar24 + 0x84298)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(pcVar24 + 0x84298)" (* "*") (cast_expression "(int **)(pcVar24 + 0x84298)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84298)" (( "(") (binary_expression "pcVar24 + 0x84298" (identifier "pcVar24") (+ "+") (number_literal "0x84298")) () ")"))))) (; ";")) (expression_statement "iStack_214 = *piVar23;" (assignment_expression "iStack_214 = *piVar23" (identifier "iStack_214") (= "=") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) (; ";")) (expression_statement "iStack_20c = iVar5;" (assignment_expression "iStack_20c = iVar5" (identifier "iStack_20c") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piStack_208 = piVar22;" (assignment_expression "piStack_208 = piVar22" (identifier "piStack_208") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "pcStack_204 = pcVar13;" (assignment_expression "pcStack_204 = pcVar13" (identifier "pcStack_204") (= "=") (identifier "pcVar13")) (; ";")) (expression_statement "puStack_200 = puVar10;" (assignment_expression "puStack_200 = puVar10" (identifier "puStack_200") (= "=") (identifier "puVar10")) (; ";")) (expression_statement "pcStack_1fc = pcVar25;" (assignment_expression "pcStack_1fc = pcVar25" (identifier "pcStack_1fc") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0)" (identifier "uVar7") (= "=") (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0)" (identifier "FUN_00029120") (argument_list "(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x83ac8) + -0x1500" (pointer_expression "*(int *)(pcVar24 + 0x83ac8)" (* "*") (cast_expression "(int *)(pcVar24 + 0x83ac8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x83ac8)" (( "(") (binary_expression "pcVar24 + 0x83ac8" (identifier "pcVar24") (+ "+") (number_literal "0x83ac8")) () ")")))) (+ "+") (number_literal "-0x1500")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);" (assignment_expression "puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_220 + -0x77c8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x77c8))" (( "(") (pointer_expression "**(code **)(pcStack_220 + -0x77c8)" (* "*") (pointer_expression "*(code **)(pcStack_220 + -0x77c8)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x77c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x77c8)" (( "(") (binary_expression "pcStack_220 + -0x77c8" (identifier "pcStack_220") (+ "+") (number_literal "-0x77c8")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))))) (; ";")) (expression_statement "uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" (identifier "uStack_228") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8)" (( "(") (binary_expression "*(int *)(pcStack_220 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_220 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcStack_220 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_220 + -0x7fc8)" (( "(") (binary_expression "pcStack_220 + -0x7fc8" (identifier "pcStack_220") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "iVar5 = fd_write(iVar6,uVar7);" (assignment_expression "iVar5 = fd_write(iVar6,uVar7)" (identifier "iVar5") (= "=") (call_expression "fd_write(iVar6,uVar7)" (identifier "fd_write") (argument_list "(iVar6,uVar7)" (( "(") (identifier "iVar6") (, ",") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }\n  else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_220 + -0x7728))(uVar7);\n  }" ({ "{") (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "(**(code **)(pcStack_220 + -0x7728))(uVar7);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_220 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_220 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x7728)" (( "(") (binary_expression "pcStack_220 + -0x7728" (identifier "pcStack_220") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_220 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_218);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_220 + -0x7728))();" (call_expression "(**(code **)(pcStack_220 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_220 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_220 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x7728)" (( "(") (binary_expression "pcStack_220 + -0x7728" (identifier "pcStack_220") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_218);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_218)" (identifier "iVar5") (= "=") (call_expression "ftp_response(iVar6,&pcStack_218)" (identifier "ftp_response") (argument_list "(iVar6,&pcStack_218)" (( "(") (identifier "iVar6") (, ",") (pointer_expression "&pcStack_218" (& "&") (identifier "pcStack_218")) () ")")))) (; ";")) (if_statement "if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      iVar6 = *(int *)(pcStack_220 + -0x7fc4);\n      if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);\n    }" ({ "{") (expression_statement "iVar6 = *(int *)(pcStack_220 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_220 + -0x7fc4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcStack_220 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_220 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_220 + -0x7fc4)" (( "(") (binary_expression "pcStack_220 + -0x7fc4" (identifier "pcStack_220") (+ "+") (number_literal "-0x7fc4")) () ")"))))) (; ";")) (if_statement "if (*pcStack_218 != '5') {\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }" (if "if") (parenthesized_expression "(*pcStack_218 != '5')" (( "(") (binary_expression "*pcStack_218 != '5'" (pointer_expression "*pcStack_218" (* "*") (identifier "pcStack_218")) (!= "!=") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);" (call_expression "(**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7888))" (( "(") (pointer_expression "**(code **)(pcStack_220 + -0x7888)" (* "*") (pointer_expression "*(code **)(pcStack_220 + -0x7888)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x7888)" (( "(") (binary_expression "pcStack_220 + -0x7888" (identifier "pcStack_220") (+ "+") (number_literal "-0x7888")) () ")"))))) () ")")) (argument_list "(pcStack_218,iVar6 + -0x3d0)" (( "(") (identifier "pcStack_218") (, ",") (binary_expression "iVar6 + -0x3d0" (identifier "iVar6") (+ "+") (number_literal "-0x3d0")) () ")"))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);" (assignment_expression "iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7888))" (( "(") (pointer_expression "**(code **)(pcStack_220 + -0x7888)" (* "*") (pointer_expression "*(code **)(pcStack_220 + -0x7888)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x7888)" (( "(") (binary_expression "pcStack_220 + -0x7888" (identifier "pcStack_220") (+ "+") (number_literal "-0x7888")) () ")"))))) () ")")) (argument_list "(0,iVar6 + -0x3d0)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar6 + -0x3d0" (identifier "iVar6") (+ "+") (number_literal "-0x3d0")) () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);\n          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);\n          *ppcVar17 = (char *)0x0;\n          pcVar13 = (char *)(*pcVar24)(iVar6);\n          pcVar24 = *(code **)(pcStack_220 + -0x7728);\n          *ppcVar17 = pcVar13;\n          (*pcVar24)(pcStack_218);\n          goto LAB_0002bae8;\n        }" ({ "{") (expression_statement "(**(code **)(pcStack_220 + -0x7728))(*ppcVar17);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(*ppcVar17)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_220 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_220 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x7728)" (( "(") (binary_expression "pcStack_220 + -0x7728" (identifier "pcStack_220") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(*ppcVar17)" (( "(") (pointer_expression "*ppcVar17" (* "*") (identifier "ppcVar17")) () ")"))) (; ";")) (expression_statement "pcVar24 = *(code **)(pcStack_220 + -0x7fa4);" (assignment_expression "pcVar24 = *(code **)(pcStack_220 + -0x7fa4)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcStack_220 + -0x7fa4)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x7fa4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x7fa4)" (( "(") (binary_expression "pcStack_220 + -0x7fa4" (identifier "pcStack_220") (+ "+") (number_literal "-0x7fa4")) () ")"))))) (; ";")) (expression_statement "*ppcVar17 = (char *)0x0;" (assignment_expression "*ppcVar17 = (char *)0x0" (pointer_expression "*ppcVar17" (* "*") (identifier "ppcVar17")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar13 = (char *)(*pcVar24)(iVar6);" (assignment_expression "pcVar13 = (char *)(*pcVar24)(iVar6)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(*pcVar24)(iVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar24)(iVar6)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "pcVar24 = *(code **)(pcStack_220 + -0x7728);" (assignment_expression "pcVar24 = *(code **)(pcStack_220 + -0x7728)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcStack_220 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x7728)" (( "(") (binary_expression "pcStack_220 + -0x7728" (identifier "pcStack_220") (+ "+") (number_literal "-0x7728")) () ")"))))) (; ";")) (expression_statement "*ppcVar17 = pcVar13;" (assignment_expression "*ppcVar17 = pcVar13" (pointer_expression "*ppcVar17" (* "*") (identifier "ppcVar17")) (= "=") (identifier "pcVar13")) (; ";")) (expression_statement "(*pcVar24)(pcStack_218);" (call_expression "(*pcVar24)(pcStack_218)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(pcStack_218)" (( "(") (identifier "pcStack_218") () ")"))) (; ";")) (goto_statement "goto LAB_0002bae8;" (goto "goto") (statement_identifier "LAB_0002bae8") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" (identifier "iVar5") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "(**(code **)(pcStack_220 + -0x7728))(pcStack_218);" (call_expression "(**(code **)(pcStack_220 + -0x7728))(pcStack_218)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_220 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_220 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x7728)" (( "(") (binary_expression "pcStack_220 + -0x7728" (identifier "pcStack_220") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(pcStack_218)" (( "(") (identifier "pcStack_218") () ")"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0002bae8:\n  if (iStack_214 == *piVar23) {\n    return iVar5;\n  }" (statement_identifier "LAB_0002bae8") (: ":") (if_statement "if (iStack_214 == *piVar23) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_214 == *piVar23)" (( "(") (binary_expression "iStack_214 == *piVar23" (identifier "iStack_214") (== "==") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))) (expression_statement "pcVar24 = *(code **)(pcStack_220 + -0x785c);" (assignment_expression "pcVar24 = *(code **)(pcStack_220 + -0x785c)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcStack_220 + -0x785c)" (* "*") (cast_expression "(code **)(pcStack_220 + -0x785c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_220 + -0x785c)" (( "(") (binary_expression "pcStack_220 + -0x785c" (identifier "pcStack_220") (+ "+") (number_literal "-0x785c")) () ")"))))) (; ";")) (expression_statement "pcVar25 = ftp_size;" (assignment_expression "pcVar25 = ftp_size" (identifier "pcVar25") (= "=") (identifier "ftp_size")) (; ";")) (expression_statement "iVar14 = iStack_214;" (assignment_expression "iVar14 = iStack_214" (identifier "iVar14") (= "=") (identifier "iStack_214")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar22 = *(int **)(pcVar24 + 0x840f4);" (assignment_expression "piVar22 = *(int **)(pcVar24 + 0x840f4)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(pcVar24 + 0x840f4)" (* "*") (cast_expression "(int **)(pcVar24 + 0x840f4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x840f4)" (( "(") (binary_expression "pcVar24 + 0x840f4" (identifier "pcVar24") (+ "+") (number_literal "0x840f4")) () ")"))))) (; ";")) (expression_statement "iStack_254 = *piVar22;" (assignment_expression "iStack_254 = *piVar22" (identifier "iStack_254") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "iStack_250 = iVar5;" (assignment_expression "iStack_250 = iVar5" (identifier "iStack_250") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piStack_24c = piVar23;" (assignment_expression "piStack_24c = piVar23" (identifier "piStack_24c") (= "=") (identifier "piVar23")) (; ";")) (expression_statement "iStack_248 = iVar6;" (assignment_expression "iStack_248 = iVar6" (identifier "iStack_248") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "ppcStack_244 = ppcVar17;" (assignment_expression "ppcStack_244 = ppcVar17" (identifier "ppcStack_244") (= "=") (identifier "ppcVar17")) (; ";")) (expression_statement "ppcStack_240 = ppcVar8;" (assignment_expression "ppcStack_240 = ppcVar8" (identifier "ppcStack_240") (= "=") (identifier "ppcVar8")) (; ";")) (expression_statement "pcStack_23c = pcVar25;" (assignment_expression "pcStack_23c = pcVar25" (identifier "pcStack_23c") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);" (assignment_expression "uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc)" (identifier "uVar7") (= "=") (call_expression "FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc)" (identifier "FUN_00029120") (argument_list "(*(int *)(pcVar24 + 0x83924) + -0x14fc)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x83924) + -0x14fc" (pointer_expression "*(int *)(pcVar24 + 0x83924)" (* "*") (cast_expression "(int *)(pcVar24 + 0x83924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x83924)" (( "(") (binary_expression "pcVar24 + 0x83924" (identifier "pcVar24") (+ "+") (number_literal "0x83924")) () ")")))) (+ "+") (number_literal "-0x14fc")) () ")")))) (; ";")) (expression_statement "uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);" (assignment_expression "uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(pcVar24 + 0x84120))(uVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x84120))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x84120)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x84120)" (* "*") (cast_expression "(code **)(pcVar24 + 0x84120)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84120)" (( "(") (binary_expression "pcVar24 + 0x84120" (identifier "pcVar24") (+ "+") (number_literal "0x84120")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "iVar5 = fd_write(iVar14,uVar7,uVar3);" (assignment_expression "iVar5 = fd_write(iVar14,uVar7,uVar3)" (identifier "iVar5") (= "=") (call_expression "fd_write(iVar14,uVar7,uVar3)" (identifier "fd_write") (argument_list "(iVar14,uVar7,uVar3)" (( "(") (identifier "iVar14") (, ",") (identifier "uVar7") (, ",") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcVar24 + 0x841c0))(uVar7);\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" ({ "{") (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x841c0))(uVar7);" (call_expression "(**(code **)(pcVar24 + 0x841c0))(uVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x841c0))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x841c0)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x841c0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x841c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x841c0)" (( "(") (binary_expression "pcVar24 + 0x841c0" (identifier "pcVar24") (+ "+") (number_literal "0x841c0")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "*(undefined4 *)((int)puVar12 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar12 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar12 + 4)" (* "*") (cast_expression "(undefined4 *)((int)puVar12 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 4)" (( "(") (binary_expression "(int)puVar12 + 4" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)puVar12 = 0;" (assignment_expression "*(undefined4 *)puVar12 = 0" (pointer_expression "*(undefined4 *)puVar12" (* "*") (cast_expression "(undefined4 *)puVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcVar24 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_258);\n    pcVar13 = pcStack_258;\n    if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }\n    *(undefined4 *)((int)puVar12 + 4) = 0;\n    *(undefined4 *)puVar12 = 0;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x841c0))();" (call_expression "(**(code **)(pcVar24 + 0x841c0))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x841c0))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x841c0)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x841c0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x841c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x841c0)" (( "(") (binary_expression "pcVar24 + 0x841c0" (identifier "pcVar24") (+ "+") (number_literal "0x841c0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = ftp_response(iVar14,&pcStack_258);" (assignment_expression "iVar5 = ftp_response(iVar14,&pcStack_258)" (identifier "iVar5") (= "=") (call_expression "ftp_response(iVar14,&pcStack_258)" (identifier "ftp_response") (argument_list "(iVar14,&pcStack_258)" (( "(") (identifier "iVar14") (, ",") (pointer_expression "&pcStack_258" (& "&") (identifier "pcStack_258")) () ")")))) (; ";")) (expression_statement "pcVar13 = pcStack_258;" (assignment_expression "pcVar13 = pcStack_258" (identifier "pcVar13") (= "=") (identifier "pcStack_258")) (; ";")) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar25)(pcStack_258);\n    }" ({ "{") (if_statement "if (*pcStack_258 == '5') {\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }\n      else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" (if "if") (parenthesized_expression "(*pcStack_258 == '5')" (( "(") (binary_expression "*pcStack_258 == '5'" (pointer_expression "*pcStack_258" (* "*") (identifier "pcStack_258")) (== "==") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n      }" ({ "{") (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x841c0);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x841c0)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x841c0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x841c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x841c0)" (( "(") (binary_expression "pcVar24 + 0x841c0" (identifier "pcVar24") (+ "+") (number_literal "0x841c0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" (else "else") (compound_statement "{\n        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();\n        *piVar23 = 0;\n        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);\n        iVar6 = *piVar23;\n        *puVar12 = uVar26;\n        pcVar25 = *(code **)(pcVar24 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }\n      }" ({ "{") (expression_statement "piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();" (assignment_expression "piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))()" (identifier "piVar23") (= "=") (cast_expression "(int *)(**(code **)(pcVar24 + 0x84348))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar24 + 0x84348))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x84348))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x84348)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x84348)" (* "*") (cast_expression "(code **)(pcVar24 + 0x84348)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x84348)" (( "(") (binary_expression "pcVar24 + 0x84348" (identifier "pcVar24") (+ "+") (number_literal "0x84348")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);" (assignment_expression "uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10)" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10)" (parenthesized_expression "(**(code **)(pcVar24 + 0x841f4))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x841f4)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x841f4)" (* "*") (cast_expression "(code **)(pcVar24 + 0x841f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x841f4)" (( "(") (binary_expression "pcVar24 + 0x841f4" (identifier "pcVar24") (+ "+") (number_literal "0x841f4")) () ")"))))) () ")")) (argument_list "(pcVar13 + 4,0,10)" (( "(") (binary_expression "pcVar13 + 4" (identifier "pcVar13") (+ "+") (number_literal "4")) (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "iVar6 = *piVar23;" (assignment_expression "iVar6 = *piVar23" (identifier "iVar6") (= "=") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) (; ";")) (expression_statement "*puVar12 = uVar26;" (assignment_expression "*puVar12 = uVar26" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x841c0);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x841c0)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x841c0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x841c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x841c0)" (( "(") (binary_expression "pcVar24 + 0x841c0" (identifier "pcVar24") (+ "+") (number_literal "0x841c0")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) {\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*pcVar25)(pcStack_258);\n          goto LAB_0002bc24;\n        }" ({ "{") (expression_statement "(*pcVar25)(pcStack_258);" (call_expression "(*pcVar25)(pcStack_258)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(pcStack_258)" (( "(") (identifier "pcStack_258") () ")"))) (; ";")) (goto_statement "goto LAB_0002bc24;" (goto "goto") (statement_identifier "LAB_0002bc24") (; ";")) (} "}"))) (} "}")))) (expression_statement "(*pcVar25)(pcStack_258);" (call_expression "(*pcVar25)(pcStack_258)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(pcStack_258)" (( "(") (identifier "pcStack_258") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)puVar12 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar12 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar12 + 4)" (* "*") (cast_expression "(undefined4 *)((int)puVar12 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 4)" (( "(") (binary_expression "(int)puVar12 + 4" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)puVar12 = 0;" (assignment_expression "*(undefined4 *)puVar12 = 0" (pointer_expression "*(undefined4 *)puVar12" (* "*") (cast_expression "(undefined4 *)puVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0002bc24:\n  if (iStack_254 == *piVar22) {\n    return iVar5;\n  }" (statement_identifier "LAB_0002bc24") (: ":") (if_statement "if (iStack_254 == *piVar22) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_254 == *piVar22)" (( "(") (binary_expression "iStack_254 == *piVar22" (identifier "iStack_254") (== "==") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))) (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x8408c);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x8408c)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x8408c)" (* "*") (cast_expression "(code **)(pcVar24 + 0x8408c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x8408c)" (( "(") (binary_expression "pcVar24 + 0x8408c" (identifier "pcVar24") (+ "+") (number_literal "0x8408c")) () ")"))))) (; ";")) (expression_statement "iVar5 = iStack_254;" (assignment_expression "iVar5 = iStack_254" (identifier "iVar5") (= "=") (identifier "iStack_254")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar5 == 0) {\n    return 0x49;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0x49;\n  }" ({ "{") (return_statement "return 0x49;" (return "return") (number_literal "0x49") (; ";")) (} "}"))) (expression_statement "iVar6 = (**(code **)(pcVar24 + 0x83e84))();" (assignment_expression "iVar6 = (**(code **)(pcVar24 + 0x83e84))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar24 + 0x83e84))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x83e84))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x83e84)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x83e84)" (* "*") (cast_expression "(code **)(pcVar24 + 0x83e84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x83e84)" (( "(") (binary_expression "pcVar24 + 0x83e84" (identifier "pcVar24") (+ "+") (number_literal "0x83e84")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = (int)*(char *)(iVar5 + 5);\n    if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }\n  }" ({ "{") (expression_statement "iVar6 = (int)*(char *)(iVar5 + 5);" (assignment_expression "iVar6 = (int)*(char *)(iVar5 + 5)" (identifier "iVar6") (= "=") (cast_expression "(int)*(char *)(iVar5 + 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar5 + 5)" (* "*") (cast_expression "(char *)(iVar5 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 5)" (( "(") (binary_expression "iVar5 + 5" (identifier "iVar5") (+ "+") (number_literal "5")) () ")")))))) (; ";")) (if_statement "if (iVar6 != 0) {\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }\n      return iVar6;\n    }" ({ "{") (if_statement "if (iVar6 - 0x61U < 0x1a) {\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }" (if "if") (parenthesized_expression "(iVar6 - 0x61U < 0x1a)" (( "(") (binary_expression "iVar6 - 0x61U < 0x1a" (binary_expression "iVar6 - 0x61U" (identifier "iVar6") (- "-") (number_literal "0x61U")) (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);\n      }" ({ "{") (expression_statement "iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);" (assignment_expression "iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20)" (identifier "iVar6") (= "=") (cast_expression "(int)(char)(*(char *)(iVar5 + 5) + -0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)(*(char *)(iVar5 + 5) + -0x20)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(*(char *)(iVar5 + 5) + -0x20)" (( "(") (binary_expression "*(char *)(iVar5 + 5) + -0x20" (pointer_expression "*(char *)(iVar5 + 5)" (* "*") (cast_expression "(char *)(iVar5 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 5)" (( "(") (binary_expression "iVar5 + 5" (identifier "iVar5") (+ "+") (number_literal "5")) () ")")))) (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (} "}"))) (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (} "}"))) (return_statement "return 0x49;" (return "return") (number_literal "0x49") (; ";")) (} "}")))

type_1 function_1(int csock,type_2 *ip,int *port)

{
  bool bVar1;
  type_3 *puVar2;
  char *var_18;
  int var_6;
  type_1 var_8;
  char **ppcVar6;
  char **var_31;
  type_4 *bufsize;
  char **buf;
  type_5 *bufsize_00;
  int var_11;
  char *var_16;
  type_6 var_15;
  char var_12;
  char **var_22;
  int var_13;
  type_6 var_14;
  int var_17;
  int *piVar15;
  int *piVar16;
  type_4 uVar17;
  type_3 *var_20;
  type_7 *var_24;
  type_7 *pcVar20;
  type_5 uVar21;
  double in_f12_13;
  char *pcStack_258;
  int var_37;
  type_1 uStack_250;
  int *piStack_24c;
  int iStack_248;
  char **ppcStack_244;
  char **ppcStack_240;
  type_7 *pcStack_23c;
  type_5 uStack_228;
  type_7 *var_35;
  char *pcStack_218;
  int var_36;
  type_1 uStack_20c;
  int *piStack_208;
  char *pcStack_204;
  type_4 *puStack_200;
  type_7 *pcStack_1fc;
  type_5 uStack_1e8;
  type_7 *var_33;
  char *pcStack_1d8;
  int var_34;
  char **ppcStack_1d0;
  int iStack_1cc;
  int iStack_1c8;
  int iStack_1c4;
  char *pcStack_1c0;
  char **ppcStack_1bc;
  type_4 uStack_1b8;
  type_7 *pcStack_1b4;
  type_5 uStack_1a0;
  type_7 *var_30;
  type_1 uStack_18c;
  type_4 *puStack_188;
  type_8 *pbStack_184;
  char *pcStack_180;
  char *var_32;
  char **ppcStack_178;
  int *piStack_174;
  int iStack_170;
  char *pcStack_16c;
  type_8 *pbStack_138;
  char *pcStack_120;
  int var_29;
  char **ppcStack_118;
  int *piStack_114;
  int iStack_110;
  type_7 *pcStack_10c;
  type_5 uStack_f8;
  type_7 *var_27;
  type_1 uStack_e4;
  char *pcStack_e0;
  int var_28;
  char *pcStack_d8;
  int *piStack_d4;
  int iStack_d0;
  type_7 *pcStack_cc;
  type_5 uStack_b8;
  type_7 *var_25;
  type_1 uStack_a4;
  char *pcStack_a0;
  int var_26;
  char **ppcStack_98;
  int *piStack_94;
  int iStack_90;
  type_7 *pcStack_8c;
  type_5 uStack_78;
  type_3 *var_21;
  type_1 uStack_64;
  char *pcStack_5c;
  char acStack_58 [4];
  int var_23;
  type_1 uStack_50;
  type_3 *puStack_4c;
  int *piStack_48;
  type_7 *pcStack_44;
  type_5 local_30;
  char *respline;
  int var_19;
  
  puVar2 = PTR___stack_chk_guard_000afc3c;
  var_19 = *(int *)PTR___stack_chk_guard_000afc3c;
  if (ip->family == 2) {
    var_16 = var_1 + -0x6670;
  }
  else {
    var_16 = var_2 + 0x1550;
  }
  var_18 = var_3(var_2 + -0x15ec,var_16);
  var_6 = (*(type_7 *)PTR_strlen_000afc68)(var_18);
  local_30 = *(type_5 *)(var_4 + 0x40b8);
  var_16 = var_18;
  var_6 = var_5(csock,var_18,var_6,in_f12_13);
  var_12 = (char)var_16;
  if (var_6 < 0) {
    var_8 = WRITEFAILED;
    (*(type_7 *)PTR_free_000afd08)(var_18);
  }
  else {
    (*(type_7 *)PTR_free_000afd08)();
    var_22 = &respline;
    var_8 = var_7(csock,var_22);
    var_12 = (char)var_22;
    if (var_8 == var_9) {
      csock = (int)respline;
      if (*respline == '2') {
        if (PTR_opt_000af488[0x16b] != '\0') {
          var_10(var_2 + -0x15e4,respline);
          csock = (int)respline;
        }
        var_12 = '(';
        var_6 = (*(type_7 *)PTR_strchr_000afdc8)(csock);
        var_20 = PTR_free_000afd08;
        if (((var_6 != 0) && (var_11 = (int)*(char *)(var_6 + 1), (var_11 - 0x21U & 0xff) < 0x5e)) &&
           (*(char *)(var_6 + 2) == var_11)) {
          var_12 = *(char *)(var_6 + 3);
          var_16 = (char *)(var_6 + 4);
          if (var_12 == var_11) {
            var_13 = (int)*var_16;
            var_14 = var_13 - 0x30;
            var_15 = (type_6)(var_14 < 10);
            var_17 = 0;
            if (var_15 != 0) {
              var_15 = 0;
              do {
                var_18 = var_16 + 1;
                var_15 = (var_15 + var_17) * 2;
                var_17 = var_14 + var_15;
                if ((char *)(var_6 + 9) == var_18) {
                  var_13 = (int)var_16[1];
                  var_16 = (char *)(var_6 + 9);
                  break;
                }
                var_13 = (int)*var_18;
                var_14 = var_13 - 0x30;
                var_15 = var_17 * 4;
                var_16 = var_18;
              } while (var_14 < 10);
            }
            var_12 = (char)var_15;
            if (var_11 == var_13) {
              if (var_16[1] == ')') {
                *port = var_17;
                (*(type_7 *)var_20)(csock);
              }
              else {
                var_8 = FTPINVPASV;
                (*(type_7 *)PTR_free_000afd08)();
              }
              goto LAB_0002ae20;
            }
          }
        }
        var_8 = FTPINVPASV;
        (*(type_7 *)PTR_free_000afd08)(csock);
      }
      else {
        var_8 = FTPNOPASV;
        (*(type_7 *)PTR_free_000afd08)(respline);
      }
    }
  }
LAB_0002ae20:
  if (var_19 == *(int *)puVar2) {
    return var_8;
  }
  var_24 = ftp_type;
  var_6 = var_19;
  var_20 = PTR___stack_chk_fail_000afbd4;
  (*(type_7 *)PTR___stack_chk_fail_000afbd4)();
  var_21 = var_20 + 0x8c558;
  puStack_4c = puVar2;
  piVar15 = *(int **)(var_20 + 0x84d64);
  acStack_58[1] = 0;
  var_23 = *piVar15;
  acStack_58[0] = var_12;
  uStack_50 = var_8;
  piStack_48 = port;
  pcStack_44 = var_24;
  ppcVar6 = (char **)var_3((char *)(*(int *)(var_20 + 0x84594) + -0x15d4),acStack_58);
  var_11 = (**(type_7 **)(var_21 + -0x77c8))(ppcVar6);
  uStack_78 = *(type_5 *)(*(int *)(var_21 + -0x7fc8) + 0x40b8);
  var_22 = ppcVar6;
  var_11 = var_5(var_6,(char *)ppcVar6,var_11,in_f12_13);
  if (var_11 < 0) {
    (**(type_7 **)(var_21 + -0x7728))(ppcVar6);
    var_8 = WRITEFAILED;
  }
  else {
    (**(type_7 **)(var_21 + -0x7728))();
    var_22 = &pcStack_5c;
    var_8 = var_7(var_6,var_22);
    if (var_8 == var_9) {
      var_22 = (char **)(int)*pcStack_5c;
      if (var_22 == (char **)0x32) {
        uStack_64 = var_8;
        (**(type_7 **)(var_21 + -0x7728))();
        var_8 = uStack_64;
      }
      else {
        (**(type_7 **)(var_21 + -0x7728))();
        var_8 = FTPUNKNOWNTYPE;
      }
    }
  }
  if (var_23 == *piVar15) {
    return var_8;
  }
  var_24 = *(type_7 **)(var_21 + -0x785c);
  pcVar20 = ftp_cwd;
  var_11 = var_23;
  (*var_24)();
  var_25 = var_24 + 0x8c410;
  piVar16 = *(int **)(var_24 + 0x84c1c);
  var_26 = *piVar16;
  ppcStack_98 = ppcVar6;
  piStack_94 = piVar15;
  iStack_90 = var_6;
  pcStack_8c = pcVar20;
  var_16 = var_3((char *)(*(int *)(var_24 + 0x8444c) + -0x15cc),(char *)var_22);
  var_6 = (**(type_7 **)(var_25 + -0x77c8))(var_16);
  uStack_b8 = *(type_5 *)(*(int *)(var_25 + -0x7fc8) + 0x40b8);
  var_13 = var_5(var_11,var_16,var_6,in_f12_13);
  if (var_13 < 0) {
    (**(type_7 **)(var_25 + -0x7728))(var_16);
    var_8 = WRITEFAILED;
  }
  else {
    (**(type_7 **)(var_25 + -0x7728))();
    var_8 = var_7(var_11,&pcStack_a0);
    if (var_8 == var_9) {
      if (*pcStack_a0 == '5') {
        (**(type_7 **)(var_25 + -0x7728))();
        var_8 = FTPNSFOD;
      }
      else if (*pcStack_a0 == '2') {
        uStack_a4 = var_8;
        (**(type_7 **)(var_25 + -0x7728))();
        var_8 = uStack_a4;
      }
      else {
        (**(type_7 **)(var_25 + -0x7728))();
        var_8 = FTPRERR;
      }
    }
  }
  if (var_26 == *piVar16) {
    return var_8;
  }
  var_24 = *(type_7 **)(var_25 + -0x785c);
  pcVar20 = ftp_rest;
  var_13 = var_26;
  (*var_24)();
  var_27 = var_24 + 0x8c2b4;
  piVar15 = *(int **)(var_24 + 0x84ac0);
  var_28 = *piVar15;
  pcStack_d8 = var_16;
  piStack_d4 = piVar16;
  iStack_d0 = var_11;
  pcStack_cc = pcVar20;
  var_16 = (char *)(**(type_7 **)(var_24 + 0x8451c))(var_6,var_14);
  ppcVar6 = (char **)var_3((char *)(*(int *)(var_27 + -0x7fc4) + -0x15c8),var_16);
  var_6 = (**(type_7 **)(var_27 + -0x77c8))(ppcVar6);
  uStack_f8 = *(type_5 *)(*(int *)(var_27 + -0x7fc8) + 0x40b8);
  var_22 = ppcVar6;
  var_6 = var_5(var_13,(char *)ppcVar6,var_6,in_f12_13);
  if (var_6 < 0) {
    (**(type_7 **)(var_27 + -0x7728))(ppcVar6);
    var_8 = WRITEFAILED;
  }
  else {
    (**(type_7 **)(var_27 + -0x7728))();
    var_22 = &pcStack_e0;
    var_8 = var_7(var_13,var_22);
    if (var_8 == var_9) {
      var_22 = (char **)(int)*pcStack_e0;
      if (var_22 == (char **)&DAT_00000033) {
        uStack_e4 = var_8;
        (**(type_7 **)(var_27 + -0x7728))();
        var_8 = uStack_e4;
      }
      else {
        (**(type_7 **)(var_27 + -0x7728))();
        var_8 = FTPRESTFAIL;
      }
    }
  }
  if (var_28 == *piVar15) {
    return var_8;
  }
  var_24 = *(type_7 **)(var_27 + -0x785c);
  pcVar20 = ftp_retr;
  var_6 = var_28;
  (*var_24)();
  piVar16 = *(int **)(var_24 + 0x8496c);
  var_29 = *piVar16;
  ppcStack_118 = ppcVar6;
  piStack_114 = piVar15;
  iStack_110 = var_13;
  pcStack_10c = pcVar20;
  ppcVar6 = (char **)var_3((char *)(*(int *)(var_24 + 0x8419c) + -0x15c0),(char *)var_22);
  var_11 = (**(type_7 **)(var_24 + 0x84998))(ppcVar6);
  uVar21 = *(type_5 *)(*(int *)(var_24 + 0x84198) + 0x40b8);
  var_22 = ppcVar6;
  var_13 = var_5(var_6,(char *)ppcVar6,var_11,in_f12_13);
  if (var_13 < 0) {
    (**(type_7 **)(var_24 + 0x84a38))(ppcVar6);
    var_8 = WRITEFAILED;
  }
  else {
    (**(type_7 **)(var_24 + 0x84a38))();
    var_22 = &pcStack_120;
    var_8 = var_7(var_6,var_22);
    if (var_8 == var_9) {
      var_22 = (char **)0x31;
      if (*pcStack_120 == '5') {
        (**(type_7 **)(var_24 + 0x84a38))();
        var_8 = FTPNSFOD;
      }
      else if (*pcStack_120 == '1') {
        (**(type_7 **)(var_24 + 0x84a38))();
      }
      else {
        (**(type_7 **)(var_24 + 0x84a38))();
        var_8 = FTPRERR;
      }
    }
  }
  if (var_29 == *piVar16) {
    return var_8;
  }
  var_24 = *(type_7 **)(var_24 + 0x84904);
  var_13 = var_29;
  (*var_24)();
  var_30 = var_24 + 0x8c004;
  puStack_188 = *(type_4 **)(var_24 + 0x84810);
  pbStack_138 = (type_8 *)((type_9)uVar21 >> 0x20);
  pbStack_184 = pbStack_138;
  var_32 = (char *)*puStack_188;
  *pbStack_138 = 0;
  var_17 = 0;
  ppcStack_178 = ppcVar6;
  piStack_174 = piVar16;
  iStack_170 = var_6;
  pcStack_16c = (char *)csock;
  if (var_11 == 0) {
    var_16 = (char *)(*(int *)(var_24 + 0x84040) + -0x15b0);
  }
  else if (*(char *)(*(int *)(var_24 + 0x8405c) + 0x16b) == '\0') {
    var_17 = 1;
    var_16 = (char *)(*(int *)(var_24 + 0x84040) + -0x15b8);
  }
  else {
    var_17 = 1;
    var_10((char *)(*(int *)(var_24 + 0x84040) + -0x15a8));
    var_16 = (char *)(*(int *)(var_30 + -0x7fc4) + -0x15b8);
  }
  var_6 = *(int *)(var_30 + -0x7c70);
  uVar21 = *(type_5 *)(*(int *)(var_30 + -0x7fc8) + 0x40b8);
  uVar17 = *(type_4 *)(var_30 + -0x7d38);
  var_18 = (char *)(*(int *)(var_30 + -0x7fc4) + -0x15b8);
  do {
    while( true ) {
      var_31 = (char **)var_3(var_16,(char *)var_22);
      bufsize = (type_4 *)(**(type_7 **)(var_30 + -0x77c8))(var_31);
      ppcVar6 = var_31;
      uStack_1a0 = uVar21;
      var_11 = var_5(var_13,(char *)var_31,(int)bufsize,in_f12_13);
      if (var_11 < 0) {
        (**(type_7 **)(var_30 + -0x7728))(var_31);
        var_8 = WRITEFAILED;
        goto LAB_0002b57c;
      }
      var_31 = (char **)(var_17 + 1);
      (**(type_7 **)(var_30 + -0x7728))();
      ppcVar6 = &pcStack_180;
      var_8 = var_7(var_13,&pcStack_180);
      var_16 = var_18;
      if (var_8 != var_9) break;
      ppcVar6 = (char **)0x31;
      if (*pcStack_180 == '5') {
        var_17 = 0;
        var_8 = FTPNSFOD;
      }
      else if (*pcStack_180 == '1') {
        *pbStack_184 = (type_8)var_17 ^ 1;
        var_17 = 1;
      }
      else {
        var_17 = 0;
        var_8 = FTPRERR;
      }
      uStack_18c = var_8;
      (**(type_7 **)(var_30 + -0x7728))();
      pcStack_180 = (char *)0x0;
      var_8 = uStack_18c;
      if (var_14 != 0) goto LAB_0002b570;
      if ((var_31 != (char **)0x1) || (bVar1 = var_17 != 0, var_17 = 1, bVar1)) goto LAB_0002b57c;
    }
    if (var_14 != 0) {
LAB_0002b570:
      if ((var_31 == (char **)0x1) && (*(char *)(*(int *)(var_30 + -0x7fa8) + 0x16b) != '\0'))
      {
        uStack_18c = var_8;
        var_10((char *)(*(int *)(var_30 + -0x7fc4) + -0x1590));
        var_8 = uStack_18c;
      }
      break;
    }
    var_17 = 1;
  } while (var_31 == (char **)0x1);
LAB_0002b57c:
  if (var_32 == (char *)*puStack_188) {
    return var_8;
  }
  var_24 = *(type_7 **)(var_30 + -0x785c);
  pcVar20 = ftp_syst;
  var_16 = var_32;
  (*var_24)();
  var_33 = var_24 + 0x8bd8c;
  piVar15 = *(int **)(var_24 + 0x84598);
  var_34 = *piVar15;
  ppcStack_1d0 = var_31;
  iStack_1cc = var_17;
  iStack_1c8 = var_13;
  iStack_1c4 = var_6 + -0x6ee0;
  pcStack_1c0 = var_18;
  ppcStack_1bc = var_22;
  uStack_1b8 = uVar17;
  pcStack_1b4 = pcVar20;
  var_31 = (char **)var_3((char *)(*(int *)(var_24 + 0x83dc8) + -0x157c),(char *)0x0);
  var_6 = (**(type_7 **)(var_33 + -0x77c8))(var_31);
  uStack_1e8 = *(type_5 *)(*(int *)(var_33 + -0x7fc8) + 0x40b8);
  var_22 = var_31;
  var_6 = var_5((int)var_16,(char *)var_31,var_6,in_f12_13);
  if (var_6 < 0) {
    var_8 = WRITEFAILED;
    (**(type_7 **)(var_33 + -0x7728))(var_31);
  }
  else {
    (**(type_7 **)(var_33 + -0x7728))();
    var_22 = &pcStack_1d8;
    var_8 = var_7((int)var_16,var_22);
    var_18 = pcStack_1d8;
    if (var_8 == var_9) {
      if (*pcStack_1d8 == '5') {
        var_8 = FTPSRVERR;
        (**(type_7 **)(var_33 + -0x7728))(pcStack_1d8);
        var_16 = pcStack_1d8;
      }
      else {
        var_6 = *(int *)(var_33 + -0x7fc8);
        uVar17 = (**(type_7 **)(var_33 + -0x794c))(pcStack_1d8);
        (**(type_7 **)(var_33 + -0x7888))(var_18,var_6 + 0x4a48);
        var_22 = (char **)(var_6 + 0x4a48);
        var_16 = (char *)(**(type_7 **)(var_33 + -0x7888))(0);
        *bufsize = 2;
        if (var_16 == (char *)0x0) {
LAB_0002b8d8:
          *ppcVar6 = (char *)0x5;
        }
        else {
          var_22 = (char **)(*(int *)(var_33 + -0x7fc4) + -0x1574);
          var_6 = (**(type_7 **)(var_33 + -0x7e9c))(var_16);
          if (var_6 == 0) {
            *ppcVar6 = (char *)0x1;
          }
          else {
            var_6 = (**(type_7 **)(var_33 + -0x7e9c))
                              (var_16,*(int *)(var_33 + -0x7fc4) + -0x1570);
            if (var_6 == 0) {
              var_6 = *(int *)(var_33 + -0x7fc4);
              var_24 = *(type_7 **)(var_33 + -0x7db0);
              *ppcVar6 = (char *)0x0;
              var_22 = (char **)(var_6 + -0x1568);
              var_6 = (*var_24)(uVar17,var_22,0x11);
              if (var_6 == 0) {
                *bufsize = 0;
              }
              else {
                var_22 = (char **)(*(int *)(var_33 + -0x7fc4) + -0x1554);
                var_6 = (**(type_7 **)(var_33 + -0x7db0))(uVar17,var_22,0x29);
                if (var_6 == 0) {
                  *bufsize = 1;
                }
              }
            }
            else {
              var_22 = (char **)(*(int *)(var_33 + -0x7fc4) + -0x1528);
              var_6 = (**(type_7 **)(var_33 + -0x7e9c))(var_16);
              if (var_6 != 0) {
                var_22 = (char **)(*(int *)(var_33 + -0x7fc4) + -0x151c);
                var_6 = (**(type_7 **)(var_33 + -0x7e9c))(var_16);
                if (var_6 != 0) {
                  var_22 = (char **)(*(int *)(var_33 + -0x7fc4) + -0x1510);
                  var_6 = (**(type_7 **)(var_33 + -0x7e9c))(var_16);
                  if (var_6 == 0) {
                    *ppcVar6 = (char *)0x3;
                  }
                  else {
                    var_22 = (char **)(*(int *)(var_33 + -0x7fc4) + -0x1508);
                    var_6 = (**(type_7 **)(var_33 + -0x7e9c))(var_16);
                    if (var_6 != 0) goto LAB_0002b8d8;
                    *ppcVar6 = (char *)0x4;
                  }
                  goto LAB_0002b804;
                }
              }
              *ppcVar6 = (char *)0x2;
            }
          }
        }
LAB_0002b804:
        (**(type_7 **)(var_33 + -0x7728))(uVar17);
        (**(type_7 **)(var_33 + -0x7728))(pcStack_1d8);
      }
    }
  }
  if (var_34 == *piVar15) {
    return var_8;
  }
  var_24 = *(type_7 **)(var_33 + -0x785c);
  pcVar20 = ftp_pwd;
  var_6 = var_34;
  (*var_24)();
  var_35 = var_24 + 0x8ba8c;
  piVar16 = *(int **)(var_24 + 0x84298);
  var_36 = *piVar16;
  uStack_20c = var_8;
  piStack_208 = piVar15;
  pcStack_204 = var_16;
  puStack_200 = bufsize;
  pcStack_1fc = pcVar20;
  buf = (char **)var_3((char *)(*(int *)(var_24 + 0x83ac8) + -0x1500),(char *)0x0);
  bufsize_00 = (type_5 *)(**(type_7 **)(var_35 + -0x77c8))(buf);
  uStack_228 = *(type_5 *)(*(int *)(var_35 + -0x7fc8) + 0x40b8);
  var_31 = buf;
  var_11 = var_5(var_6,(char *)buf,(int)bufsize_00,in_f12_13);
  if (var_11 < 0) {
    var_8 = WRITEFAILED;
    (**(type_7 **)(var_35 + -0x7728))(buf);
  }
  else {
    (**(type_7 **)(var_35 + -0x7728))();
    var_31 = &pcStack_218;
    var_8 = var_7(var_6,var_31);
    if (var_8 == var_9) {
      var_6 = *(int *)(var_35 + -0x7fc4);
      if (*pcStack_218 != '5') {
        (**(type_7 **)(var_35 + -0x7888))(pcStack_218,var_6 + -0x3d0);
        var_31 = (char **)(var_6 + -0x3d0);
        var_6 = (**(type_7 **)(var_35 + -0x7888))(0);
        if (var_6 != 0) {
          (**(type_7 **)(var_35 + -0x7728))(*var_22);
          var_24 = *(type_7 **)(var_35 + -0x7fa4);
          *var_22 = (char *)0x0;
          var_16 = (char *)(*var_24)(var_6);
          var_24 = *(type_7 **)(var_35 + -0x7728);
          *var_22 = var_16;
          (*var_24)(pcStack_218);
          goto LAB_0002bae8;
        }
      }
      var_8 = FTPSRVERR;
      (**(type_7 **)(var_35 + -0x7728))(pcStack_218);
    }
  }
LAB_0002bae8:
  if (var_36 == *piVar16) {
    return var_8;
  }
  var_24 = *(type_7 **)(var_35 + -0x785c);
  pcVar20 = ftp_size;
  var_11 = var_36;
  (*var_24)();
  piVar15 = *(int **)(var_24 + 0x840f4);
  var_37 = *piVar15;
  uStack_250 = var_8;
  piStack_24c = piVar16;
  iStack_248 = var_6;
  ppcStack_244 = var_22;
  ppcStack_240 = ppcVar6;
  pcStack_23c = pcVar20;
  var_16 = var_3((char *)(*(int *)(var_24 + 0x83924) + -0x14fc),(char *)var_31);
  var_6 = (**(type_7 **)(var_24 + 0x84120))(var_16);
  var_6 = var_5(var_11,var_16,var_6,in_f12_13);
  if (var_6 < 0) {
    var_8 = WRITEFAILED;
    (**(type_7 **)(var_24 + 0x841c0))(var_16);
    *(type_4 *)((int)bufsize_00 + 4) = 0;
    *(type_4 *)bufsize_00 = 0;
  }
  else {
    (**(type_7 **)(var_24 + 0x841c0))();
    var_8 = var_7(var_11,&pcStack_258);
    var_16 = pcStack_258;
    if (var_8 == var_9) {
      if (*pcStack_258 == '5') {
        pcVar20 = *(type_7 **)(var_24 + 0x841c0);
      }
      else {
        piVar16 = (int *)(**(type_7 **)(var_24 + 0x84348))();
        *piVar16 = 0;
        uVar21 = (**(type_7 **)(var_24 + 0x841f4))(var_16 + 4,0,10);
        var_6 = *piVar16;
        *bufsize_00 = uVar21;
        pcVar20 = *(type_7 **)(var_24 + 0x841c0);
        if (var_6 == 0) {
          (*pcVar20)(pcStack_258);
          goto LAB_0002bc24;
        }
      }
      (*pcVar20)(pcStack_258);
    }
    *(type_4 *)((int)bufsize_00 + 4) = 0;
    *(type_4 *)bufsize_00 = 0;
  }
LAB_0002bc24:
  if (var_37 == *piVar15) {
    return var_8;
  }
  var_24 = *(type_7 **)(var_24 + 0x8408c);
  var_6 = var_37;
  (*var_24)();
  if (var_6 == 0) {
    return 0x49;
  }
  var_11 = (**(type_7 **)(var_24 + 0x83e84))();
  if (var_11 == 0) {
    var_8 = (type_1)*(char *)(var_6 + 5);
    if (var_8 != var_38) {
      if (var_8 - 0x61 < 0x1a) {
        var_8 = (type_1)(char)(*(char *)(var_6 + 5) + -0x20);
      }
      return var_8;
    }
  }
  return 0x49;
}


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

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

{
  bool bVar1;
  undefined *puVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  char **ppcVar8;
  char **ppcVar9;
  undefined4 *puVar10;
  int iVar11;
  undefined8 *puVar12;
  char *pcVar13;
  int iVar14;
  undefined *puVar15;
  uint uVar16;
  char cVar18;
  char **ppcVar17;
  int iVar19;
  char *pcVar20;
  int iVar21;
  int *piVar22;
  int *piVar23;
  code *pcVar24;
  code *pcVar25;
  undefined8 uVar26;
  char *pcStack_258;
  int iStack_254;
  int iStack_250;
  int *piStack_24c;
  int iStack_248;
  char **ppcStack_244;
  char **ppcStack_240;
  code *pcStack_23c;
  undefined8 uStack_228;
  code *pcStack_220;
  char *pcStack_218;
  int iStack_214;
  int iStack_20c;
  int *piStack_208;
  char *pcStack_204;
  undefined4 *puStack_200;
  code *pcStack_1fc;
  undefined8 uStack_1e8;
  code *pcStack_1e0;
  char *pcStack_1d8;
  int iStack_1d4;
  char **ppcStack_1d0;
  int iStack_1cc;
  int iStack_1c8;
  int iStack_1c4;
  int iStack_1c0;
  char **ppcStack_1bc;
  undefined4 uStack_1b8;
  code *pcStack_1b4;
  undefined8 uStack_1a0;
  code *pcStack_198;
  int iStack_18c;
  undefined4 *puStack_188;
  byte *pbStack_184;
  char *pcStack_180;
  char *pcStack_17c;
  char **ppcStack_178;
  int *piStack_174;
  int iStack_170;
  char *pcStack_16c;
  byte *pbStack_138;
  char *pcStack_120;
  int iStack_11c;
  undefined4 uStack_118;
  int *piStack_114;
  int iStack_110;
  code *pcStack_10c;
  undefined8 uStack_f8;
  code *pcStack_f0;
  int iStack_e4;
  char *pcStack_e0;
  int iStack_dc;
  undefined4 uStack_d8;
  int *piStack_d4;
  int iStack_d0;
  code *pcStack_cc;
  undefined8 uStack_b8;
  code *pcStack_b0;
  int iStack_a4;
  char *pcStack_a0;
  int iStack_9c;
  undefined4 uStack_98;
  int *piStack_94;
  int iStack_90;
  code *pcStack_8c;
  undefined8 uStack_78;
  undefined *puStack_70;
  int iStack_64;
  char *pcStack_5c;
  char acStack_58 [4];
  int iStack_54;
  int iStack_50;
  undefined *puStack_4c;
  int *piStack_48;
  code *pcStack_44;
  undefined8 local_30;
  char *local_20;
  int local_1c;
  
  puVar2 = PTR___stack_chk_guard_000afc3c;
  local_1c = *(int *)PTR___stack_chk_guard_000afc3c;
  if (*param_2 == 2) {
    puVar15 = PTR_DAT_000af498 + -0x6670;
  }
  else {
    puVar15 = PTR_s_hallenge__000af46c + 0x1550;
  }
  uVar3 = FUN_00029120(PTR_s_hallenge__000af46c + -0x15ec,puVar15);
  uVar4 = (*(code *)PTR_strlen_000afc68)(uVar3);
  local_30 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);
  uVar7 = uVar3;
  iVar5 = fd_write(param_1,uVar3,uVar4);
  cVar18 = (char)uVar7;
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (*(code *)PTR_free_000afd08)(uVar3);
  }
  else {
    (*(code *)PTR_free_000afd08)();
    cVar18 = (char)&local_20;
    iVar5 = ftp_response(param_1);
    if (iVar5 == 7) {
      param_1 = local_20;
      if (*local_20 == '2') {
        if (PTR_opt_000af488[0x16b] != '\0') {
          debug_logprintf(PTR_s_hallenge__000af46c + -0x15e4,local_20);
          param_1 = local_20;
        }
        cVar18 = '(';
        iVar6 = (*(code *)PTR_strchr_000afdc8)(param_1);
        puVar15 = PTR_free_000afd08;
        if (((iVar6 != 0) && (iVar14 = (int)*(char *)(iVar6 + 1), (iVar14 - 0x21U & 0xff) < 0x5e))
           && (*(char *)(iVar6 + 2) == iVar14)) {
          cVar18 = *(char *)(iVar6 + 3);
          pcVar13 = (char *)(iVar6 + 4);
          if (cVar18 == iVar14) {
            iVar19 = (int)*pcVar13;
            param_4 = iVar19 - 0x30;
            uVar16 = (uint)(param_4 < 10);
            iVar21 = 0;
            if (uVar16 != 0) {
              uVar16 = 0;
              do {
                pcVar20 = pcVar13 + 1;
                uVar16 = (uVar16 + iVar21) * 2;
                iVar21 = param_4 + uVar16;
                if ((char *)(iVar6 + 9) == pcVar20) {
                  iVar19 = (int)pcVar13[1];
                  pcVar13 = (char *)(iVar6 + 9);
                  break;
                }
                iVar19 = (int)*pcVar20;
                param_4 = iVar19 - 0x30;
                uVar16 = iVar21 * 4;
                pcVar13 = pcVar20;
              } while (param_4 < 10);
            }
            cVar18 = (char)uVar16;
            if (iVar14 == iVar19) {
              if (pcVar13[1] == ')') {
                *param_3 = iVar21;
                (*(code *)puVar15)(param_1);
              }
              else {
                iVar5 = 0x1c;
                (*(code *)PTR_free_000afd08)();
              }
              goto LAB_0002ae20;
            }
          }
        }
        iVar5 = 0x1c;
        (*(code *)PTR_free_000afd08)(param_1);
      }
      else {
        iVar5 = 0x1d;
        (*(code *)PTR_free_000afd08)(local_20);
      }
    }
  }
LAB_0002ae20:
  if (local_1c == *(int *)puVar2) {
    return iVar5;
  }
  pcVar24 = ftp_type;
  iVar6 = local_1c;
  puVar15 = PTR___stack_chk_fail_000afbd4;
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  puStack_70 = puVar15 + 0x8c558;
  puStack_4c = puVar2;
  piVar22 = *(int **)(puVar15 + 0x84d64);
  acStack_58[1] = 0;
  iStack_54 = *piVar22;
  acStack_58[0] = cVar18;
  iStack_50 = iVar5;
  piStack_48 = param_3;
  pcStack_44 = pcVar24;
  uVar7 = FUN_00029120(*(int *)(puVar15 + 0x84594) + -0x15d4,acStack_58);
  uVar3 = (**(code **)(puStack_70 + -0x77c8))(uVar7);
  uStack_78 = *(undefined8 *)(*(int *)(puStack_70 + -0x7fc8) + 0x40b8);
  iVar5 = fd_write(iVar6,uVar7,uVar3);
  if (iVar5 < 0) {
    (**(code **)(puStack_70 + -0x7728))(uVar7);
    iVar5 = 0x2c;
  }
  else {
    (**(code **)(puStack_70 + -0x7728))();
    iVar5 = ftp_response(iVar6,&pcStack_5c);
    if (iVar5 == 7) {
      if (*pcStack_5c == '2') {
        iStack_64 = iVar5;
        (**(code **)(puStack_70 + -0x7728))();
        iVar5 = iStack_64;
      }
      else {
        (**(code **)(puStack_70 + -0x7728))();
        iVar5 = 0xd;
      }
    }
  }
  if (iStack_54 == *piVar22) {
    return iVar5;
  }
  pcVar24 = *(code **)(puStack_70 + -0x785c);
  pcVar25 = ftp_cwd;
  iVar5 = iStack_54;
  (*pcVar24)();
  pcStack_b0 = pcVar24 + 0x8c410;
  piVar23 = *(int **)(pcVar24 + 0x84c1c);
  iStack_9c = *piVar23;
  uStack_98 = uVar7;
  piStack_94 = piVar22;
  iStack_90 = iVar6;
  pcStack_8c = pcVar25;
  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x8444c) + -0x15cc);
  uVar3 = (**(code **)(pcStack_b0 + -0x77c8))(uVar7);
  uStack_b8 = *(undefined8 *)(*(int *)(pcStack_b0 + -0x7fc8) + 0x40b8);
  iVar6 = fd_write(iVar5,uVar7,uVar3);
  if (iVar6 < 0) {
    (**(code **)(pcStack_b0 + -0x7728))(uVar7);
    iVar6 = 0x2c;
  }
  else {
    (**(code **)(pcStack_b0 + -0x7728))();
    iVar6 = ftp_response(iVar5,&pcStack_a0);
    if (iVar6 == 7) {
      if (*pcStack_a0 == '5') {
        (**(code **)(pcStack_b0 + -0x7728))();
        iVar6 = 0xc;
      }
      else if (*pcStack_a0 == '2') {
        iStack_a4 = iVar6;
        (**(code **)(pcStack_b0 + -0x7728))();
        iVar6 = iStack_a4;
      }
      else {
        (**(code **)(pcStack_b0 + -0x7728))();
        iVar6 = 0xe;
      }
    }
  }
  if (iStack_9c == *piVar23) {
    return iVar6;
  }
  pcVar24 = *(code **)(pcStack_b0 + -0x785c);
  pcVar25 = ftp_rest;
  iVar6 = iStack_9c;
  (*pcVar24)();
  pcStack_f0 = pcVar24 + 0x8c2b4;
  piVar22 = *(int **)(pcVar24 + 0x84ac0);
  iStack_dc = *piVar22;
  uStack_d8 = uVar7;
  piStack_d4 = piVar23;
  iStack_d0 = iVar5;
  pcStack_cc = pcVar25;
  uVar7 = (**(code **)(pcVar24 + 0x8451c))(uVar3,param_4);
  uVar7 = FUN_00029120(*(int *)(pcStack_f0 + -0x7fc4) + -0x15c8,uVar7);
  uVar3 = (**(code **)(pcStack_f0 + -0x77c8))(uVar7);
  uStack_f8 = *(undefined8 *)(*(int *)(pcStack_f0 + -0x7fc8) + 0x40b8);
  iVar5 = fd_write(iVar6,uVar7,uVar3);
  if (iVar5 < 0) {
    (**(code **)(pcStack_f0 + -0x7728))(uVar7);
    iVar5 = 0x2c;
  }
  else {
    (**(code **)(pcStack_f0 + -0x7728))();
    iVar5 = ftp_response(iVar6,&pcStack_e0);
    if (iVar5 == 7) {
      if (*pcStack_e0 == '3') {
        iStack_e4 = iVar5;
        (**(code **)(pcStack_f0 + -0x7728))();
        iVar5 = iStack_e4;
      }
      else {
        (**(code **)(pcStack_f0 + -0x7728))();
        iVar5 = 0x11;
      }
    }
  }
  if (iStack_dc == *piVar22) {
    return iVar5;
  }
  pcVar24 = *(code **)(pcStack_f0 + -0x785c);
  pcVar25 = ftp_retr;
  iVar5 = iStack_dc;
  (*pcVar24)();
  piVar23 = *(int **)(pcVar24 + 0x8496c);
  iStack_11c = *piVar23;
  uStack_118 = uVar7;
  piStack_114 = piVar22;
  iStack_110 = iVar6;
  pcStack_10c = pcVar25;
  ppcVar8 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x8419c) + -0x15c0);
  iVar6 = (**(code **)(pcVar24 + 0x84998))(ppcVar8);
  uVar26 = *(undefined8 *)(*(int *)(pcVar24 + 0x84198) + 0x40b8);
  ppcVar17 = ppcVar8;
  iVar14 = fd_write(iVar5);
  if (iVar14 < 0) {
    (**(code **)(pcVar24 + 0x84a38))(ppcVar8);
    iVar14 = 0x2c;
  }
  else {
    (**(code **)(pcVar24 + 0x84a38))();
    ppcVar17 = &pcStack_120;
    iVar14 = ftp_response(iVar5);
    if (iVar14 == 7) {
      ppcVar17 = (char **)0x31;
      if (*pcStack_120 == '5') {
        (**(code **)(pcVar24 + 0x84a38))();
        iVar14 = 0xc;
      }
      else if (*pcStack_120 == '1') {
        (**(code **)(pcVar24 + 0x84a38))();
      }
      else {
        (**(code **)(pcVar24 + 0x84a38))();
        iVar14 = 0xe;
      }
    }
  }
  if (iStack_11c == *piVar23) {
    return iVar14;
  }
  pcVar24 = *(code **)(pcVar24 + 0x84904);
  iVar14 = iStack_11c;
  (*pcVar24)();
  pcStack_198 = pcVar24 + 0x8c004;
  puStack_188 = *(undefined4 **)(pcVar24 + 0x84810);
  pbStack_138 = (byte *)((ulonglong)uVar26 >> 0x20);
  pbStack_184 = pbStack_138;
  pcStack_17c = (char *)*puStack_188;
  *pbStack_138 = 0;
  iVar19 = 0;
  ppcStack_178 = ppcVar8;
  piStack_174 = piVar23;
  iStack_170 = iVar5;
  pcStack_16c = param_1;
  if (iVar6 == 0) {
    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b0;
  }
  else if (*(char *)(*(int *)(pcVar24 + 0x8405c) + 0x16b) == '\0') {
    iVar19 = 1;
    iVar5 = *(int *)(pcVar24 + 0x84040) + -0x15b8;
  }
  else {
    iVar19 = 1;
    debug_logprintf(*(int *)(pcVar24 + 0x84040) + -0x15a8);
    iVar5 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;
  }
  iVar6 = *(int *)(pcStack_198 + -0x7c70);
  uVar26 = *(undefined8 *)(*(int *)(pcStack_198 + -0x7fc8) + 0x40b8);
  uVar7 = *(undefined4 *)(pcStack_198 + -0x7d38);
  iVar21 = *(int *)(pcStack_198 + -0x7fc4) + -0x15b8;
  do {
    while( true ) {
      ppcVar9 = (char **)FUN_00029120(iVar5,ppcVar17);
      puVar10 = (undefined4 *)(**(code **)(pcStack_198 + -0x77c8))(ppcVar9);
      ppcVar8 = ppcVar9;
      uStack_1a0 = uVar26;
      iVar5 = fd_write(iVar14);
      if (iVar5 < 0) {
        (**(code **)(pcStack_198 + -0x7728))(ppcVar9);
        iVar11 = 0x2c;
        goto LAB_0002b57c;
      }
      ppcVar9 = (char **)(iVar19 + 1);
      (**(code **)(pcStack_198 + -0x7728))();
      ppcVar8 = &pcStack_180;
      iVar11 = ftp_response(iVar14);
      iVar5 = iVar21;
      if (iVar11 != 7) break;
      ppcVar8 = (char **)0x31;
      if (*pcStack_180 == '5') {
        iVar19 = 0;
        iVar11 = 0xc;
      }
      else if (*pcStack_180 == '1') {
        *pbStack_184 = (byte)iVar19 ^ 1;
        iVar19 = 1;
      }
      else {
        iVar19 = 0;
        iVar11 = 0xe;
      }
      iStack_18c = iVar11;
      (**(code **)(pcStack_198 + -0x7728))();
      pcStack_180 = (char *)0x0;
      iVar11 = iStack_18c;
      if (param_4 != 0) goto LAB_0002b570;
      if ((ppcVar9 != (char **)&DAT_00000001) || (bVar1 = iVar19 != 0, iVar19 = 1, bVar1))
      goto LAB_0002b57c;
    }
    if (param_4 != 0) {
LAB_0002b570:
      if ((ppcVar9 == (char **)&DAT_00000001) &&
         (*(char *)(*(int *)(pcStack_198 + -0x7fa8) + 0x16b) != '\0')) {
        iStack_18c = iVar11;
        debug_logprintf(*(int *)(pcStack_198 + -0x7fc4) + -0x1590);
        iVar11 = iStack_18c;
      }
      break;
    }
    iVar19 = 1;
  } while (ppcVar9 == (char **)&DAT_00000001);
LAB_0002b57c:
  if (pcStack_17c == (char *)*puStack_188) {
    return iVar11;
  }
  pcVar24 = *(code **)(pcStack_198 + -0x785c);
  pcVar25 = ftp_syst;
  pcVar13 = pcStack_17c;
  (*pcVar24)();
  pcStack_1e0 = pcVar24 + 0x8bd8c;
  piVar22 = *(int **)(pcVar24 + 0x84598);
  iStack_1d4 = *piVar22;
  ppcStack_1d0 = ppcVar9;
  iStack_1cc = iVar19;
  iStack_1c8 = iVar14;
  iStack_1c4 = iVar6 + -0x6ee0;
  iStack_1c0 = iVar21;
  ppcStack_1bc = ppcVar17;
  uStack_1b8 = uVar7;
  pcStack_1b4 = pcVar25;
  ppcVar9 = (char **)FUN_00029120(*(int *)(pcVar24 + 0x83dc8) + -0x157c,0);
  uVar7 = (**(code **)(pcStack_1e0 + -0x77c8))(ppcVar9);
  uStack_1e8 = *(undefined8 *)(*(int *)(pcStack_1e0 + -0x7fc8) + 0x40b8);
  ppcVar17 = ppcVar9;
  iVar5 = fd_write(pcVar13,ppcVar9,uVar7);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcStack_1e0 + -0x7728))(ppcVar9);
  }
  else {
    (**(code **)(pcStack_1e0 + -0x7728))();
    ppcVar17 = &pcStack_1d8;
    iVar5 = ftp_response(pcVar13);
    pcVar20 = pcStack_1d8;
    if (iVar5 == 7) {
      if (*pcStack_1d8 == '5') {
        iVar5 = 0xf;
        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);
        pcVar13 = pcStack_1d8;
      }
      else {
        iVar6 = *(int *)(pcStack_1e0 + -0x7fc8);
        uVar7 = (**(code **)(pcStack_1e0 + -0x794c))(pcStack_1d8);
        (**(code **)(pcStack_1e0 + -0x7888))(pcVar20,iVar6 + 0x4a48);
        ppcVar17 = (char **)(iVar6 + 0x4a48);
        pcVar13 = (char *)(**(code **)(pcStack_1e0 + -0x7888))(0);
        *puVar10 = 2;
        if (pcVar13 == (char *)0x0) {
LAB_0002b8d8:
          *ppcVar8 = (char *)0x5;
        }
        else {
          ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1574);
          iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
          if (iVar6 == 0) {
            *ppcVar8 = (char *)0x1;
          }
          else {
            iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))
                              (pcVar13,*(int *)(pcStack_1e0 + -0x7fc4) + -0x1570);
            if (iVar6 == 0) {
              iVar6 = *(int *)(pcStack_1e0 + -0x7fc4);
              pcVar24 = *(code **)(pcStack_1e0 + -0x7db0);
              *ppcVar8 = (char *)0x0;
              ppcVar17 = (char **)(iVar6 + -0x1568);
              iVar6 = (*pcVar24)(uVar7,ppcVar17,0x11);
              if (iVar6 == 0) {
                *puVar10 = 0;
              }
              else {
                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1554);
                iVar6 = (**(code **)(pcStack_1e0 + -0x7db0))(uVar7,ppcVar17,0x29);
                if (iVar6 == 0) {
                  *puVar10 = 1;
                }
              }
            }
            else {
              ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1528);
              iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
              if (iVar6 != 0) {
                ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x151c);
                iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
                if (iVar6 != 0) {
                  ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1510);
                  iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
                  if (iVar6 == 0) {
                    *ppcVar8 = (char *)0x3;
                  }
                  else {
                    ppcVar17 = (char **)(*(int *)(pcStack_1e0 + -0x7fc4) + -0x1508);
                    iVar6 = (**(code **)(pcStack_1e0 + -0x7e9c))(pcVar13);
                    if (iVar6 != 0) goto LAB_0002b8d8;
                    *ppcVar8 = (char *)0x4;
                  }
                  goto LAB_0002b804;
                }
              }
              *ppcVar8 = (char *)0x2;
            }
          }
        }
LAB_0002b804:
        (**(code **)(pcStack_1e0 + -0x7728))(uVar7);
        (**(code **)(pcStack_1e0 + -0x7728))(pcStack_1d8);
      }
    }
  }
  if (iStack_1d4 == *piVar22) {
    return iVar5;
  }
  pcVar24 = *(code **)(pcStack_1e0 + -0x785c);
  pcVar25 = ftp_pwd;
  iVar6 = iStack_1d4;
  (*pcVar24)();
  pcStack_220 = pcVar24 + 0x8ba8c;
  piVar23 = *(int **)(pcVar24 + 0x84298);
  iStack_214 = *piVar23;
  iStack_20c = iVar5;
  piStack_208 = piVar22;
  pcStack_204 = pcVar13;
  puStack_200 = puVar10;
  pcStack_1fc = pcVar25;
  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83ac8) + -0x1500,0);
  puVar12 = (undefined8 *)(**(code **)(pcStack_220 + -0x77c8))(uVar7);
  uStack_228 = *(undefined8 *)(*(int *)(pcStack_220 + -0x7fc8) + 0x40b8);
  iVar5 = fd_write(iVar6,uVar7);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcStack_220 + -0x7728))(uVar7);
  }
  else {
    (**(code **)(pcStack_220 + -0x7728))();
    iVar5 = ftp_response(iVar6,&pcStack_218);
    if (iVar5 == 7) {
      iVar6 = *(int *)(pcStack_220 + -0x7fc4);
      if (*pcStack_218 != '5') {
        (**(code **)(pcStack_220 + -0x7888))(pcStack_218,iVar6 + -0x3d0);
        iVar6 = (**(code **)(pcStack_220 + -0x7888))(0,iVar6 + -0x3d0);
        if (iVar6 != 0) {
          (**(code **)(pcStack_220 + -0x7728))(*ppcVar17);
          pcVar24 = *(code **)(pcStack_220 + -0x7fa4);
          *ppcVar17 = (char *)0x0;
          pcVar13 = (char *)(*pcVar24)(iVar6);
          pcVar24 = *(code **)(pcStack_220 + -0x7728);
          *ppcVar17 = pcVar13;
          (*pcVar24)(pcStack_218);
          goto LAB_0002bae8;
        }
      }
      iVar5 = 0xf;
      (**(code **)(pcStack_220 + -0x7728))(pcStack_218);
    }
  }
LAB_0002bae8:
  if (iStack_214 == *piVar23) {
    return iVar5;
  }
  pcVar24 = *(code **)(pcStack_220 + -0x785c);
  pcVar25 = ftp_size;
  iVar14 = iStack_214;
  (*pcVar24)();
  piVar22 = *(int **)(pcVar24 + 0x840f4);
  iStack_254 = *piVar22;
  iStack_250 = iVar5;
  piStack_24c = piVar23;
  iStack_248 = iVar6;
  ppcStack_244 = ppcVar17;
  ppcStack_240 = ppcVar8;
  pcStack_23c = pcVar25;
  uVar7 = FUN_00029120(*(int *)(pcVar24 + 0x83924) + -0x14fc);
  uVar3 = (**(code **)(pcVar24 + 0x84120))(uVar7);
  iVar5 = fd_write(iVar14,uVar7,uVar3);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcVar24 + 0x841c0))(uVar7);
    *(undefined4 *)((int)puVar12 + 4) = 0;
    *(undefined4 *)puVar12 = 0;
  }
  else {
    (**(code **)(pcVar24 + 0x841c0))();
    iVar5 = ftp_response(iVar14,&pcStack_258);
    pcVar13 = pcStack_258;
    if (iVar5 == 7) {
      if (*pcStack_258 == '5') {
        pcVar25 = *(code **)(pcVar24 + 0x841c0);
      }
      else {
        piVar23 = (int *)(**(code **)(pcVar24 + 0x84348))();
        *piVar23 = 0;
        uVar26 = (**(code **)(pcVar24 + 0x841f4))(pcVar13 + 4,0,10);
        iVar6 = *piVar23;
        *puVar12 = uVar26;
        pcVar25 = *(code **)(pcVar24 + 0x841c0);
        if (iVar6 == 0) {
          (*pcVar25)(pcStack_258);
          goto LAB_0002bc24;
        }
      }
      (*pcVar25)(pcStack_258);
    }
    *(undefined4 *)((int)puVar12 + 4) = 0;
    *(undefined4 *)puVar12 = 0;
  }
LAB_0002bc24:
  if (iStack_254 == *piVar22) {
    return iVar5;
  }
  pcVar24 = *(code **)(pcVar24 + 0x8408c);
  iVar5 = iStack_254;
  (*pcVar24)();
  if (iVar5 == 0) {
    return 0x49;
  }
  iVar6 = (**(code **)(pcVar24 + 0x83e84))();
  if (iVar6 == 0) {
    iVar6 = (int)*(char *)(iVar5 + 5);
    if (iVar6 != 0) {
      if (iVar6 - 0x61U < 0x1a) {
        iVar6 = (int)(char)(*(char *)(iVar5 + 5) + -0x20);
      }
      return iVar6;
    }
  }
  return 0x49;
}

