
uerr_t ftp_retr(int csock,char *file)

{
  bool bVar1;
  undefined *puVar2;
  char **ppcVar3;
  int iVar4;
  int iVar5;
  uerr_t uVar6;
  char **ppcVar7;
  undefined4 *bufsize;
  int iVar8;
  char **buf;
  undefined8 *bufsize_00;
  char *pcVar9;
  char **ppcVar10;
  int in_a3;
  int iVar11;
  int *piVar12;
  int *piVar13;
  char *pcVar14;
  undefined4 uVar15;
  undefined *puVar16;
  code *pcVar17;
  code *pcVar18;
  undefined8 uVar19;
  double in_f12_13;
  char *pcStack_150;
  int iStack_14c;
  uerr_t uStack_148;
  int *piStack_144;
  int iStack_140;
  char **ppcStack_13c;
  char **ppcStack_138;
  code *pcStack_134;
  undefined8 uStack_120;
  code *pcStack_118;
  char *pcStack_110;
  int iStack_10c;
  uerr_t uStack_104;
  int *piStack_100;
  char *pcStack_fc;
  undefined4 *puStack_f8;
  code *pcStack_f4;
  undefined8 uStack_e0;
  code *pcStack_d8;
  char *pcStack_d0;
  int iStack_cc;
  char **ppcStack_c8;
  int iStack_c4;
  int iStack_c0;
  int iStack_bc;
  char *pcStack_b8;
  char **ppcStack_b4;
  undefined4 uStack_b0;
  code *pcStack_ac;
  undefined8 uStack_98;
  undefined *puStack_90;
  uerr_t uStack_84;
  undefined4 *puStack_80;
  byte *pbStack_7c;
  char *pcStack_78;
  char *pcStack_74;
  char **ppcStack_70;
  undefined *puStack_6c;
  int iStack_68;
  byte *local_30;
  char *respline;
  int local_14;
  
  puVar2 = PTR___stack_chk_guard_000afc3c;
  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;
  ppcVar3 = (char **)ftp_request(PTR_s_hallenge__000af46c + -0x15c0,file);
  iVar4 = (*(code *)PTR_strlen_000afc68)(ppcVar3);
  uVar19 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);
  ppcVar10 = ppcVar3;
  iVar5 = fd_write(csock,(char *)ppcVar3,iVar4,in_f12_13);
  if (iVar5 < 0) {
    (*(code *)PTR_free_000afd08)(ppcVar3);
    uVar6 = WRITEFAILED;
  }
  else {
    (*(code *)PTR_free_000afd08)();
    ppcVar10 = &respline;
    uVar6 = ftp_response(csock,ppcVar10);
    if (uVar6 == FTPOK) {
      ppcVar10 = (char **)0x31;
      if (*respline == '5') {
        (*(code *)PTR_free_000afd08)();
        uVar6 = FTPNSFOD;
      }
      else if (*respline == '1') {
        (*(code *)PTR_free_000afd08)();
      }
      else {
        (*(code *)PTR_free_000afd08)();
        uVar6 = FTPRERR;
      }
    }
  }
  if (local_14 == *(int *)puVar2) {
    return uVar6;
  }
  iVar5 = local_14;
  puVar16 = PTR___stack_chk_fail_000afbd4;
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  puStack_90 = puVar16 + 0x8c004;
  puStack_80 = *(undefined4 **)(puVar16 + 0x84810);
  local_30 = (byte *)((ulonglong)uVar19 >> 0x20);
  puStack_6c = puVar2;
  pbStack_7c = local_30;
  pcStack_74 = (char *)*puStack_80;
  *local_30 = 0;
  iVar11 = 0;
  ppcStack_70 = ppcVar3;
  iStack_68 = csock;
  if (iVar4 == 0) {
    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b0);
  }
  else if (*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b) == '\0') {
    iVar11 = 1;
    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8);
  }
  else {
    iVar11 = 1;
    debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));
    pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);
  }
  iVar4 = *(int *)(puStack_90 + -0x7c70);
  uVar19 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);
  uVar15 = *(undefined4 *)(puStack_90 + -0x7d38);
  pcVar14 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);
  do {
    while( true ) {
      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10);
      bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);
      ppcVar3 = ppcVar7;
      uStack_98 = uVar19;
      iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13);
      if (iVar8 < 0) {
        (**(code **)(puStack_90 + -0x7728))(ppcVar7);
        uVar6 = WRITEFAILED;
        goto LAB_0002b57c;
      }
      ppcVar7 = (char **)(iVar11 + 1);
      (**(code **)(puStack_90 + -0x7728))();
      ppcVar3 = &pcStack_78;
      uVar6 = ftp_response(iVar5,&pcStack_78);
      pcVar9 = pcVar14;
      if (uVar6 != FTPOK) break;
      ppcVar3 = (char **)0x31;
      if (*pcStack_78 == '5') {
        iVar11 = 0;
        uVar6 = FTPNSFOD;
      }
      else if (*pcStack_78 == '1') {
        *pbStack_7c = (byte)iVar11 ^ 1;
        iVar11 = 1;
      }
      else {
        iVar11 = 0;
        uVar6 = FTPRERR;
      }
      uStack_84 = uVar6;
      (**(code **)(puStack_90 + -0x7728))();
      pcStack_78 = (char *)0x0;
      uVar6 = uStack_84;
      if (in_a3 != 0) goto LAB_0002b570;
      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 1, bVar1)) goto LAB_0002b57c;
    }
    if (in_a3 != 0) {
LAB_0002b570:
      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))
      {
        uStack_84 = uVar6;
        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));
        uVar6 = uStack_84;
      }
      break;
    }
    iVar11 = 1;
  } while (ppcVar7 == (char **)0x1);
LAB_0002b57c:
  if (pcStack_74 == (char *)*puStack_80) {
    return uVar6;
  }
  pcVar17 = *(code **)(puStack_90 + -0x785c);
  pcVar18 = ftp_syst;
  pcVar9 = pcStack_74;
  (*pcVar17)();
  pcStack_d8 = pcVar17 + 0x8bd8c;
  piVar12 = *(int **)(pcVar17 + 0x84598);
  iStack_cc = *piVar12;
  ppcStack_c8 = ppcVar7;
  iStack_c4 = iVar11;
  iStack_c0 = iVar5;
  iStack_bc = iVar4 + -0x6ee0;
  pcStack_b8 = pcVar14;
  ppcStack_b4 = ppcVar10;
  uStack_b0 = uVar15;
  pcStack_ac = pcVar18;
  ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c),(char *)0x0);
  iVar4 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);
  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);
  ppcVar10 = ppcVar7;
  iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13);
  if (iVar4 < 0) {
    uVar6 = WRITEFAILED;
    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);
  }
  else {
    (**(code **)(pcStack_d8 + -0x7728))();
    ppcVar10 = &pcStack_d0;
    uVar6 = ftp_response((int)pcVar9,ppcVar10);
    pcVar14 = pcStack_d0;
    if (uVar6 == FTPOK) {
      if (*pcStack_d0 == '5') {
        uVar6 = FTPSRVERR;
        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);
        pcVar9 = pcStack_d0;
      }
      else {
        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);
        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);
        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);
        ppcVar10 = (char **)(iVar4 + 0x4a48);
        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);
        *bufsize = 2;
        if (pcVar9 == (char *)0x0) {
LAB_0002b8d8:
          *ppcVar3 = (char *)0x5;
        }
        else {
          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);
          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);
          if (iVar4 == 0) {
            *ppcVar3 = (char *)0x1;
          }
          else {
            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))
                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);
            if (iVar4 == 0) {
              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);
              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);
              *ppcVar3 = (char *)0x0;
              ppcVar10 = (char **)(iVar4 + -0x1568);
              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);
              if (iVar4 == 0) {
                *bufsize = 0;
              }
              else {
                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);
                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);
                if (iVar4 == 0) {
                  *bufsize = 1;
                }
              }
            }
            else {
              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);
              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);
              if (iVar4 != 0) {
                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);
                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);
                if (iVar4 != 0) {
                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);
                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);
                  if (iVar4 == 0) {
                    *ppcVar3 = (char *)0x3;
                  }
                  else {
                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);
                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);
                    if (iVar4 != 0) goto LAB_0002b8d8;
                    *ppcVar3 = (char *)0x4;
                  }
                  goto LAB_0002b804;
                }
              }
              *ppcVar3 = (char *)0x2;
            }
          }
        }
LAB_0002b804:
        (**(code **)(pcStack_d8 + -0x7728))(uVar15);
        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);
      }
    }
  }
  if (iStack_cc == *piVar12) {
    return uVar6;
  }
  pcVar17 = *(code **)(pcStack_d8 + -0x785c);
  pcVar18 = ftp_pwd;
  iVar4 = iStack_cc;
  (*pcVar17)();
  pcStack_118 = pcVar17 + 0x8ba8c;
  piVar13 = *(int **)(pcVar17 + 0x84298);
  iStack_10c = *piVar13;
  uStack_104 = uVar6;
  piStack_100 = piVar12;
  pcStack_fc = pcVar9;
  puStack_f8 = bufsize;
  pcStack_f4 = pcVar18;
  buf = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500),(char *)0x0);
  bufsize_00 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(buf);
  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);
  ppcVar7 = buf;
  iVar5 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);
  if (iVar5 < 0) {
    uVar6 = WRITEFAILED;
    (**(code **)(pcStack_118 + -0x7728))(buf);
  }
  else {
    (**(code **)(pcStack_118 + -0x7728))();
    ppcVar7 = &pcStack_110;
    uVar6 = ftp_response(iVar4,ppcVar7);
    if (uVar6 == FTPOK) {
      iVar4 = *(int *)(pcStack_118 + -0x7fc4);
      if (*pcStack_110 != '5') {
        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);
        ppcVar7 = (char **)(iVar4 + -0x3d0);
        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);
        if (iVar4 != 0) {
          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);
          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);
          *ppcVar10 = (char *)0x0;
          pcVar9 = (char *)(*pcVar17)(iVar4);
          pcVar17 = *(code **)(pcStack_118 + -0x7728);
          *ppcVar10 = pcVar9;
          (*pcVar17)(pcStack_110);
          goto LAB_0002bae8;
        }
      }
      uVar6 = FTPSRVERR;
      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);
    }
  }
LAB_0002bae8:
  if (iStack_10c == *piVar13) {
    return uVar6;
  }
  pcVar17 = *(code **)(pcStack_118 + -0x785c);
  pcVar18 = ftp_size;
  iVar5 = iStack_10c;
  (*pcVar17)();
  piVar12 = *(int **)(pcVar17 + 0x840f4);
  iStack_14c = *piVar12;
  uStack_148 = uVar6;
  piStack_144 = piVar13;
  iStack_140 = iVar4;
  ppcStack_13c = ppcVar10;
  ppcStack_138 = ppcVar3;
  pcStack_134 = pcVar18;
  pcVar9 = ftp_request((char *)(*(int *)(pcVar17 + 0x83924) + -0x14fc),(char *)ppcVar7);
  iVar4 = (**(code **)(pcVar17 + 0x84120))(pcVar9);
  iVar4 = fd_write(iVar5,pcVar9,iVar4,in_f12_13);
  if (iVar4 < 0) {
    uVar6 = WRITEFAILED;
    (**(code **)(pcVar17 + 0x841c0))(pcVar9);
    *(undefined4 *)((int)bufsize_00 + 4) = 0;
    *(undefined4 *)bufsize_00 = 0;
  }
  else {
    (**(code **)(pcVar17 + 0x841c0))();
    uVar6 = ftp_response(iVar5,&pcStack_150);
    pcVar9 = pcStack_150;
    if (uVar6 == FTPOK) {
      if (*pcStack_150 == '5') {
        pcVar18 = *(code **)(pcVar17 + 0x841c0);
      }
      else {
        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();
        *piVar13 = 0;
        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);
        iVar4 = *piVar13;
        *bufsize_00 = uVar19;
        pcVar18 = *(code **)(pcVar17 + 0x841c0);
        if (iVar4 == 0) {
          (*pcVar18)(pcStack_150);
          goto LAB_0002bc24;
        }
      }
      (*pcVar18)(pcStack_150);
    }
    *(undefined4 *)((int)bufsize_00 + 4) = 0;
    *(undefined4 *)bufsize_00 = 0;
  }
LAB_0002bc24:
  if (iStack_14c == *piVar12) {
    return uVar6;
  }
  pcVar17 = *(code **)(pcVar17 + 0x8408c);
  iVar4 = iStack_14c;
  (*pcVar17)();
  if (iVar4 == 0) {
    return 0x49;
  }
  iVar5 = (**(code **)(pcVar17 + 0x83e84))();
  if (iVar5 == 0) {
    uVar6 = (uerr_t)*(char *)(iVar4 + 5);
    if (uVar6 != NOCONERROR) {
      if (uVar6 - 0x61 < 0x1a) {
        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);
      }
      return uVar6;
    }
  }
  return 0x49;
}



int ftp_retr(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)

{
  bool bVar1;
  undefined *puVar2;
  char *pcVar3;
  char **ppcVar4;
  int iVar5;
  int iVar6;
  char **ppcVar7;
  undefined4 *puVar8;
  int iVar9;
  char *pcVar10;
  undefined8 *puVar11;
  undefined4 uVar12;
  char **ppcVar13;
  int iVar14;
  int *piVar15;
  int *piVar16;
  int iVar17;
  int iVar18;
  undefined4 uVar19;
  undefined *puVar20;
  code *pcVar21;
  code *pcVar22;
  undefined8 uVar23;
  char *pcStack_150;
  int iStack_14c;
  int iStack_148;
  int *piStack_144;
  int iStack_140;
  char **ppcStack_13c;
  char **ppcStack_138;
  code *pcStack_134;
  undefined8 uStack_120;
  code *pcStack_118;
  char *pcStack_110;
  int iStack_10c;
  int iStack_104;
  int *piStack_100;
  char *pcStack_fc;
  undefined4 *puStack_f8;
  code *pcStack_f4;
  undefined8 uStack_e0;
  code *pcStack_d8;
  char *pcStack_d0;
  int iStack_cc;
  char **ppcStack_c8;
  int iStack_c4;
  int iStack_c0;
  int iStack_bc;
  int iStack_b8;
  char **ppcStack_b4;
  undefined4 uStack_b0;
  code *pcStack_ac;
  undefined8 uStack_98;
  undefined *puStack_90;
  int iStack_84;
  undefined4 *puStack_80;
  byte *pbStack_7c;
  char *pcStack_78;
  char *pcStack_74;
  char **ppcStack_70;
  undefined *puStack_6c;
  undefined4 uStack_68;
  byte *local_30;
  char *local_18;
  int local_14;
  
  puVar2 = PTR___stack_chk_guard_000afc3c;
  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;
  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);
  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);
  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);
  ppcVar13 = ppcVar4;
  iVar6 = fd_write(param_1);
  if (iVar6 < 0) {
    (*(code *)PTR_free_000afd08)(ppcVar4);
    iVar6 = 0x2c;
  }
  else {
    (*(code *)PTR_free_000afd08)();
    ppcVar13 = &local_18;
    iVar6 = ftp_response(param_1);
    if (iVar6 == 7) {
      ppcVar13 = (char **)0x31;
      if (*local_18 == '5') {
        (*(code *)PTR_free_000afd08)();
        iVar6 = 0xc;
      }
      else if (*local_18 == '1') {
        (*(code *)PTR_free_000afd08)();
      }
      else {
        (*(code *)PTR_free_000afd08)();
        iVar6 = 0xe;
      }
    }
  }
  if (local_14 == *(int *)puVar2) {
    return iVar6;
  }
  iVar6 = local_14;
  puVar20 = PTR___stack_chk_fail_000afbd4;
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  puStack_90 = puVar20 + 0x8c004;
  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);
  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);
  puStack_6c = puVar2;
  pbStack_7c = local_30;
  pcStack_74 = (char *)*puStack_80;
  *local_30 = 0;
  iVar14 = 0;
  ppcStack_70 = ppcVar4;
  uStack_68 = param_1;
  if (iVar5 == 0) {
    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;
  }
  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {
    iVar14 = 1;
    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;
  }
  else {
    iVar14 = 1;
    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);
    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;
  }
  iVar17 = *(int *)(puStack_90 + -0x7c70);
  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);
  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);
  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;
  do {
    while( true ) {
      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);
      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);
      ppcVar4 = ppcVar7;
      uStack_98 = uVar23;
      iVar5 = fd_write(iVar6);
      if (iVar5 < 0) {
        (**(code **)(puStack_90 + -0x7728))(ppcVar7);
        iVar9 = 0x2c;
        goto LAB_0002b57c;
      }
      ppcVar7 = (char **)(iVar14 + 1);
      (**(code **)(puStack_90 + -0x7728))();
      ppcVar4 = &pcStack_78;
      iVar9 = ftp_response(iVar6);
      iVar5 = iVar18;
      if (iVar9 != 7) break;
      ppcVar4 = (char **)0x31;
      if (*pcStack_78 == '5') {
        iVar14 = 0;
        iVar9 = 0xc;
      }
      else if (*pcStack_78 == '1') {
        *pbStack_7c = (byte)iVar14 ^ 1;
        iVar14 = 1;
      }
      else {
        iVar14 = 0;
        iVar9 = 0xe;
      }
      iStack_84 = iVar9;
      (**(code **)(puStack_90 + -0x7728))();
      pcStack_78 = (char *)0x0;
      iVar9 = iStack_84;
      if (param_4 != 0) goto LAB_0002b570;
      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))
      goto LAB_0002b57c;
    }
    if (param_4 != 0) {
LAB_0002b570:
      if ((ppcVar7 == (char **)&DAT_00000001) &&
         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {
        iStack_84 = iVar9;
        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);
        iVar9 = iStack_84;
      }
      break;
    }
    iVar14 = 1;
  } while (ppcVar7 == (char **)&DAT_00000001);
LAB_0002b57c:
  if (pcStack_74 == (char *)*puStack_80) {
    return iVar9;
  }
  pcVar21 = *(code **)(puStack_90 + -0x785c);
  pcVar22 = ftp_syst;
  pcVar10 = pcStack_74;
  (*pcVar21)();
  pcStack_d8 = pcVar21 + 0x8bd8c;
  piVar15 = *(int **)(pcVar21 + 0x84598);
  iStack_cc = *piVar15;
  ppcStack_c8 = ppcVar7;
  iStack_c4 = iVar14;
  iStack_c0 = iVar6;
  iStack_bc = iVar17 + -0x6ee0;
  iStack_b8 = iVar18;
  ppcStack_b4 = ppcVar13;
  uStack_b0 = uVar19;
  pcStack_ac = pcVar22;
  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);
  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);
  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);
  ppcVar13 = ppcVar7;
  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);
  }
  else {
    (**(code **)(pcStack_d8 + -0x7728))();
    ppcVar13 = &pcStack_d0;
    iVar5 = ftp_response(pcVar10);
    pcVar3 = pcStack_d0;
    if (iVar5 == 7) {
      if (*pcStack_d0 == '5') {
        iVar5 = 0xf;
        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);
        pcVar10 = pcStack_d0;
      }
      else {
        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);
        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);
        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);
        ppcVar13 = (char **)(iVar6 + 0x4a48);
        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);
        *puVar8 = 2;
        if (pcVar10 == (char *)0x0) {
LAB_0002b8d8:
          *ppcVar4 = (char *)0x5;
        }
        else {
          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);
          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
          if (iVar6 == 0) {
            *ppcVar4 = (char *)0x1;
          }
          else {
            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))
                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);
            if (iVar6 == 0) {
              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);
              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);
              *ppcVar4 = (char *)0x0;
              ppcVar13 = (char **)(iVar6 + -0x1568);
              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);
              if (iVar6 == 0) {
                *puVar8 = 0;
              }
              else {
                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);
                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);
                if (iVar6 == 0) {
                  *puVar8 = 1;
                }
              }
            }
            else {
              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);
              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
              if (iVar6 != 0) {
                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);
                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
                if (iVar6 != 0) {
                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);
                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
                  if (iVar6 == 0) {
                    *ppcVar4 = (char *)0x3;
                  }
                  else {
                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);
                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
                    if (iVar6 != 0) goto LAB_0002b8d8;
                    *ppcVar4 = (char *)0x4;
                  }
                  goto LAB_0002b804;
                }
              }
              *ppcVar4 = (char *)0x2;
            }
          }
        }
LAB_0002b804:
        (**(code **)(pcStack_d8 + -0x7728))(uVar19);
        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);
      }
    }
  }
  if (iStack_cc == *piVar15) {
    return iVar5;
  }
  pcVar21 = *(code **)(pcStack_d8 + -0x785c);
  pcVar22 = ftp_pwd;
  iVar6 = iStack_cc;
  (*pcVar21)();
  pcStack_118 = pcVar21 + 0x8ba8c;
  piVar16 = *(int **)(pcVar21 + 0x84298);
  iStack_10c = *piVar16;
  iStack_104 = iVar5;
  piStack_100 = piVar15;
  pcStack_fc = pcVar10;
  puStack_f8 = puVar8;
  pcStack_f4 = pcVar22;
  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);
  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);
  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);
  iVar5 = fd_write(iVar6,uVar19);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcStack_118 + -0x7728))(uVar19);
  }
  else {
    (**(code **)(pcStack_118 + -0x7728))();
    iVar5 = ftp_response(iVar6,&pcStack_110);
    if (iVar5 == 7) {
      iVar6 = *(int *)(pcStack_118 + -0x7fc4);
      if (*pcStack_110 != '5') {
        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);
        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);
        if (iVar6 != 0) {
          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);
          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);
          *ppcVar13 = (char *)0x0;
          pcVar10 = (char *)(*pcVar21)(iVar6);
          pcVar21 = *(code **)(pcStack_118 + -0x7728);
          *ppcVar13 = pcVar10;
          (*pcVar21)(pcStack_110);
          goto LAB_0002bae8;
        }
      }
      iVar5 = 0xf;
      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);
    }
  }
LAB_0002bae8:
  if (iStack_10c == *piVar16) {
    return iVar5;
  }
  pcVar21 = *(code **)(pcStack_118 + -0x785c);
  pcVar22 = ftp_size;
  iVar14 = iStack_10c;
  (*pcVar21)();
  piVar15 = *(int **)(pcVar21 + 0x840f4);
  iStack_14c = *piVar15;
  iStack_148 = iVar5;
  piStack_144 = piVar16;
  iStack_140 = iVar6;
  ppcStack_13c = ppcVar13;
  ppcStack_138 = ppcVar4;
  pcStack_134 = pcVar22;
  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);
  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);
  iVar5 = fd_write(iVar14,uVar19,uVar12);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcVar21 + 0x841c0))(uVar19);
    *(undefined4 *)((int)puVar11 + 4) = 0;
    *(undefined4 *)puVar11 = 0;
  }
  else {
    (**(code **)(pcVar21 + 0x841c0))();
    iVar5 = ftp_response(iVar14,&pcStack_150);
    pcVar10 = pcStack_150;
    if (iVar5 == 7) {
      if (*pcStack_150 == '5') {
        pcVar22 = *(code **)(pcVar21 + 0x841c0);
      }
      else {
        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();
        *piVar16 = 0;
        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);
        iVar6 = *piVar16;
        *puVar11 = uVar23;
        pcVar22 = *(code **)(pcVar21 + 0x841c0);
        if (iVar6 == 0) {
          (*pcVar22)(pcStack_150);
          goto LAB_0002bc24;
        }
      }
      (*pcVar22)(pcStack_150);
    }
    *(undefined4 *)((int)puVar11 + 4) = 0;
    *(undefined4 *)puVar11 = 0;
  }
LAB_0002bc24:
  if (iStack_14c == *piVar15) {
    return iVar5;
  }
  pcVar21 = *(code **)(pcVar21 + 0x8408c);
  iVar5 = iStack_14c;
  (*pcVar21)();
  if (iVar5 == 0) {
    return 0x49;
  }
  iVar6 = (**(code **)(pcVar21 + 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,-0x3ea0
addu gp,gp,t9
addiu sp,sp,-0x40
lw t9,-0x7c70(gp)
sw s1,0x34(sp)
addiu t9,t9,-0x6ee0
sw s2,0x38(sp)
or s2,a0,zero
lw s1,-0x77f4(gp)
lw a0,-0x7fc4(gp)
sw ra,0x3c(sp)
sw gp,0x18(sp)
sw s0,0x30(sp)
addiu a0,a0,-0x15c0
lw v0,0x0(s1)
sw v0,0x2c(sp)
bal 0x00029120
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x77c8(gp)
jalr t9
_or s0,v0,zero
or a0,s2,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,0x0002b3f4
_lw t9,-0x7728(gp)
jalr t9
_nop
addiu a1,sp,0x28
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
bal 0x00029394
_or a0,s2,zero
li v1,0x7
beq v0,v1,0x0002b3b0
_lw gp,0x18(sp)
lw a0,0x2c(sp)
lw v1,0x0(s1)
bne a0,v1,0x0002b420
_lw ra,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x40
lw a0,0x28(sp)
li a1,0x35
lb v1,0x0(a0)
beq v1,a1,0x0002b408
_li a1,0x31
beq v1,a1,0x0002b3e0
_lw t9,-0x7728(gp)
jalr t9
_nop
li v0,0xe
b 0x0002b38c
_lw gp,0x18(sp)
jalr t9
_sw v0,0x24(sp)
lw gp,0x18(sp)
b 0x0002b38c
_lw v0,0x24(sp)
jalr t9
_nop
li v0,0x2c
b 0x0002b38c
_lw gp,0x18(sp)
lw t9,-0x7728(gp)
jalr t9
_nop
li v0,0xc
b 0x0002b38c
_lw gp,0x18(sp)
lw t9,-0x785c(gp)
jalr t9
_nop
(translation_unit "int ftp_retr(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  char **ppcVar4;\n  int iVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  undefined4 uVar12;\n  char **ppcVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined8 uVar23;\n  char *pcStack_150;\n  int iStack_14c;\n  int iStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  int iStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  int iStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  undefined4 uStack_68;\n  byte *local_30;\n  char *local_18;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);\n  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);\n  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar13 = ppcVar4;\n  iVar6 = fd_write(param_1);\n  if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }\n  iVar6 = local_14;\n  puVar20 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar20 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar14 = 0;\n  ppcStack_70 = ppcVar4;\n  uStack_68 = param_1;\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }\n  iVar17 = *(int *)(puStack_90 + -0x7c70);\n  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);\n  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }\n  pcVar21 = *(code **)(puStack_90 + -0x785c);\n  pcVar22 = ftp_syst;\n  pcVar10 = pcStack_74;\n  (*pcVar21)();\n  pcStack_d8 = pcVar21 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar21 + 0x84598);\n  iStack_cc = *piVar15;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar14;\n  iStack_c0 = iVar6;\n  iStack_bc = iVar17 + -0x6ee0;\n  iStack_b8 = iVar18;\n  ppcStack_b4 = ppcVar13;\n  uStack_b0 = uVar19;\n  pcStack_ac = pcVar22;\n  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);\n  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar13 = ppcVar7;\n  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar22 = ftp_pwd;\n  iVar6 = iStack_cc;\n  (*pcVar21)();\n  pcStack_118 = pcVar21 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar21 + 0x84298);\n  iStack_10c = *piVar16;\n  iStack_104 = iVar5;\n  piStack_100 = piVar15;\n  pcStack_fc = pcVar10;\n  puStack_f8 = puVar8;\n  pcStack_f4 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);\n  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_118 + -0x785c);\n  pcVar22 = ftp_size;\n  iVar14 = iStack_10c;\n  (*pcVar21)();\n  piVar15 = *(int **)(pcVar21 + 0x840f4);\n  iStack_14c = *piVar15;\n  iStack_148 = iVar5;\n  piStack_144 = piVar16;\n  iStack_140 = iVar6;\n  ppcStack_13c = ppcVar13;\n  ppcStack_138 = ppcVar4;\n  pcStack_134 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);\n  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);\n  iVar5 = fd_write(iVar14,uVar19,uVar12);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcVar21 + 0x8408c);\n  iVar5 = iStack_14c;\n  (*pcVar21)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar21 + 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_retr(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  char **ppcVar4;\n  int iVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  undefined4 uVar12;\n  char **ppcVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined8 uVar23;\n  char *pcStack_150;\n  int iStack_14c;\n  int iStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  int iStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  int iStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  undefined4 uStack_68;\n  byte *local_30;\n  char *local_18;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);\n  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);\n  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar13 = ppcVar4;\n  iVar6 = fd_write(param_1);\n  if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }\n  iVar6 = local_14;\n  puVar20 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar20 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar14 = 0;\n  ppcStack_70 = ppcVar4;\n  uStack_68 = param_1;\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }\n  iVar17 = *(int *)(puStack_90 + -0x7c70);\n  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);\n  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }\n  pcVar21 = *(code **)(puStack_90 + -0x785c);\n  pcVar22 = ftp_syst;\n  pcVar10 = pcStack_74;\n  (*pcVar21)();\n  pcStack_d8 = pcVar21 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar21 + 0x84598);\n  iStack_cc = *piVar15;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar14;\n  iStack_c0 = iVar6;\n  iStack_bc = iVar17 + -0x6ee0;\n  iStack_b8 = iVar18;\n  ppcStack_b4 = ppcVar13;\n  uStack_b0 = uVar19;\n  pcStack_ac = pcVar22;\n  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);\n  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar13 = ppcVar7;\n  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar22 = ftp_pwd;\n  iVar6 = iStack_cc;\n  (*pcVar21)();\n  pcStack_118 = pcVar21 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar21 + 0x84298);\n  iStack_10c = *piVar16;\n  iStack_104 = iVar5;\n  piStack_100 = piVar15;\n  pcStack_fc = pcVar10;\n  puStack_f8 = puVar8;\n  pcStack_f4 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);\n  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_118 + -0x785c);\n  pcVar22 = ftp_size;\n  iVar14 = iStack_10c;\n  (*pcVar21)();\n  piVar15 = *(int **)(pcVar21 + 0x840f4);\n  iStack_14c = *piVar15;\n  iStack_148 = iVar5;\n  piStack_144 = piVar16;\n  iStack_140 = iVar6;\n  ppcStack_13c = ppcVar13;\n  ppcStack_138 = ppcVar4;\n  pcStack_134 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);\n  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);\n  iVar5 = fd_write(iVar14,uVar19,uVar12);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcVar21 + 0x8408c);\n  iVar5 = iStack_14c;\n  (*pcVar21)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar21 + 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_retr(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  char **ppcVar4;\n  int iVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  undefined4 uVar12;\n  char **ppcVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined8 uVar23;\n  char *pcStack_150;\n  int iStack_14c;\n  int iStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  int iStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  int iStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  undefined4 uStack_68;\n  byte *local_30;\n  char *local_18;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);\n  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);\n  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar13 = ppcVar4;\n  iVar6 = fd_write(param_1);\n  if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }\n  iVar6 = local_14;\n  puVar20 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar20 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar14 = 0;\n  ppcStack_70 = ppcVar4;\n  uStack_68 = param_1;\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }\n  iVar17 = *(int *)(puStack_90 + -0x7c70);\n  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);\n  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }\n  pcVar21 = *(code **)(puStack_90 + -0x785c);\n  pcVar22 = ftp_syst;\n  pcVar10 = pcStack_74;\n  (*pcVar21)();\n  pcStack_d8 = pcVar21 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar21 + 0x84598);\n  iStack_cc = *piVar15;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar14;\n  iStack_c0 = iVar6;\n  iStack_bc = iVar17 + -0x6ee0;\n  iStack_b8 = iVar18;\n  ppcStack_b4 = ppcVar13;\n  uStack_b0 = uVar19;\n  pcStack_ac = pcVar22;\n  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);\n  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar13 = ppcVar7;\n  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar22 = ftp_pwd;\n  iVar6 = iStack_cc;\n  (*pcVar21)();\n  pcStack_118 = pcVar21 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar21 + 0x84298);\n  iStack_10c = *piVar16;\n  iStack_104 = iVar5;\n  piStack_100 = piVar15;\n  pcStack_fc = pcVar10;\n  puStack_f8 = puVar8;\n  pcStack_f4 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);\n  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_118 + -0x785c);\n  pcVar22 = ftp_size;\n  iVar14 = iStack_10c;\n  (*pcVar21)();\n  piVar15 = *(int **)(pcVar21 + 0x840f4);\n  iStack_14c = *piVar15;\n  iStack_148 = iVar5;\n  piStack_144 = piVar16;\n  iStack_140 = iVar6;\n  ppcStack_13c = ppcVar13;\n  ppcStack_138 = ppcVar4;\n  pcStack_134 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);\n  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);\n  iVar5 = fd_write(iVar14,uVar19,uVar12);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcVar21 + 0x8408c);\n  iVar5 = iStack_14c;\n  (*pcVar21)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar21 + 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 "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char **ppcVar4;" primitive_type (pointer_declarator "**ppcVar4" * (pointer_declarator "*ppcVar4" * identifier)) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char **ppcVar7;" primitive_type (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "char **ppcVar13;" primitive_type (pointer_declarator "**ppcVar13" * (pointer_declarator "*ppcVar13" * 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 "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined8 uVar23;" type_identifier identifier ;) (declaration "char *pcStack_150;" primitive_type (pointer_declarator "*pcStack_150" * identifier) ;) (declaration "int iStack_14c;" primitive_type identifier ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "int *piStack_144;" primitive_type (pointer_declarator "*piStack_144" * identifier) ;) (declaration "int iStack_140;" primitive_type identifier ;) (declaration "char **ppcStack_13c;" primitive_type (pointer_declarator "**ppcStack_13c" * (pointer_declarator "*ppcStack_13c" * identifier)) ;) (declaration "char **ppcStack_138;" primitive_type (pointer_declarator "**ppcStack_138" * (pointer_declarator "*ppcStack_138" * identifier)) ;) (declaration "code *pcStack_134;" type_identifier (pointer_declarator "*pcStack_134" * identifier) ;) (declaration "undefined8 uStack_120;" type_identifier identifier ;) (declaration "code *pcStack_118;" type_identifier (pointer_declarator "*pcStack_118" * identifier) ;) (declaration "char *pcStack_110;" primitive_type (pointer_declarator "*pcStack_110" * identifier) ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "int *piStack_100;" primitive_type (pointer_declarator "*piStack_100" * identifier) ;) (declaration "char *pcStack_fc;" primitive_type (pointer_declarator "*pcStack_fc" * identifier) ;) (declaration "undefined4 *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "code *pcStack_f4;" type_identifier (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "undefined8 uStack_e0;" type_identifier identifier ;) (declaration "code *pcStack_d8;" type_identifier (pointer_declarator "*pcStack_d8" * identifier) ;) (declaration "char *pcStack_d0;" primitive_type (pointer_declarator "*pcStack_d0" * identifier) ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "char **ppcStack_c8;" primitive_type (pointer_declarator "**ppcStack_c8" * (pointer_declarator "*ppcStack_c8" * identifier)) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "int iStack_c0;" primitive_type identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "char **ppcStack_b4;" primitive_type (pointer_declarator "**ppcStack_b4" * (pointer_declarator "*ppcStack_b4" * identifier)) ;) (declaration "undefined4 uStack_b0;" type_identifier identifier ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "undefined8 uStack_98;" type_identifier identifier ;) (declaration "undefined *puStack_90;" type_identifier (pointer_declarator "*puStack_90" * identifier) ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined4 *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "byte *pbStack_7c;" type_identifier (pointer_declarator "*pbStack_7c" * identifier) ;) (declaration "char *pcStack_78;" primitive_type (pointer_declarator "*pcStack_78" * identifier) ;) (declaration "char *pcStack_74;" primitive_type (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "char **ppcStack_70;" primitive_type (pointer_declarator "**ppcStack_70" * (pointer_declarator "*ppcStack_70" * identifier)) ;) (declaration "undefined *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "byte *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "char *local_18;" primitive_type (pointer_declarator "*local_18" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_14 = *(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))) ;) (expression_statement "ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);" (assignment_expression "ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0)" identifier = (cast_expression "(char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0)" identifier (argument_list "(PTR_s_hallenge__000af46c + -0x15c0)" ( (binary_expression "PTR_s_hallenge__000af46c + -0x15c0" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);" (assignment_expression "iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4)" identifier = (call_expression "(*(code *)PTR_strlen_000afc68)(ppcVar4)" (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 "(ppcVar4)" ( identifier )))) ;) (expression_statement "uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);" (assignment_expression "uVar23 = *(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 "ppcVar13 = ppcVar4;" (assignment_expression "ppcVar13 = ppcVar4" identifier = identifier) ;) (expression_statement "iVar6 = fd_write(param_1);" (assignment_expression "iVar6 = fd_write(param_1)" identifier = (call_expression "fd_write(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }" { (expression_statement "(*(code *)PTR_free_000afd08)(ppcVar4);" (call_expression "(*(code *)PTR_free_000afd08)(ppcVar4)" (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 "(ppcVar4)" ( identifier ))) ;) (expression_statement "iVar6 = 0x2c;" (assignment_expression "iVar6 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }" else (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\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 "ppcVar13 = &local_18;" (assignment_expression "ppcVar13 = &local_18" identifier = (pointer_expression "&local_18" & identifier)) ;) (expression_statement "iVar6 = ftp_response(param_1);" (assignment_expression "iVar6 = ftp_response(param_1)" identifier = (call_expression "ftp_response(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }" if (parenthesized_expression "(iVar6 == 7)" ( (binary_expression "iVar6 == 7" identifier == number_literal) )) (compound_statement "{\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }" { (expression_statement "ppcVar13 = (char **)0x31;" (assignment_expression "ppcVar13 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" if (parenthesized_expression "(*local_18 == '5')" ( (binary_expression "*local_18 == '5'" (pointer_expression "*local_18" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\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 "iVar6 = 0xc;" (assignment_expression "iVar6 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" else (if_statement "if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" if (parenthesized_expression "(*local_18 == '1')" ( (binary_expression "*local_18 == '1'" (pointer_expression "*local_18" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\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 "()" ( ))) ;) }) (else_clause "else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" else (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\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 "iVar6 = 0xe;" (assignment_expression "iVar6 = 0xe" identifier = number_literal) ;) }))))) })) }))) (if_statement "if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }" if (parenthesized_expression "(local_14 == *(int *)puVar2)" ( (binary_expression "local_14 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "iVar6 = local_14;" (assignment_expression "iVar6 = local_14" identifier = identifier) ;) (expression_statement "puVar20 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar20 = 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_90 = puVar20 + 0x8c004;" (assignment_expression "puStack_90 = puVar20 + 0x8c004" identifier = (binary_expression "puVar20 + 0x8c004" identifier + number_literal)) ;) (expression_statement "puStack_80 = *(undefined4 **)(puVar20 + 0x84810);" (assignment_expression "puStack_80 = *(undefined4 **)(puVar20 + 0x84810)" identifier = (pointer_expression "*(undefined4 **)(puVar20 + 0x84810)" * (cast_expression "(undefined4 **)(puVar20 + 0x84810)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x84810)" ( (binary_expression "puVar20 + 0x84810" identifier + number_literal) ))))) ;) (expression_statement "local_30 = (byte *)((ulonglong)uVar23 >> 0x20);" (assignment_expression "local_30 = (byte *)((ulonglong)uVar23 >> 0x20)" identifier = (cast_expression "(byte *)((ulonglong)uVar23 >> 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar23 >> 0x20)" ( (binary_expression "(ulonglong)uVar23 >> 0x20" (cast_expression "(ulonglong)uVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puStack_6c = puVar2;" (assignment_expression "puStack_6c = puVar2" identifier = identifier) ;) (expression_statement "pbStack_7c = local_30;" (assignment_expression "pbStack_7c = local_30" identifier = identifier) ;) (expression_statement "pcStack_74 = (char *)*puStack_80;" (assignment_expression "pcStack_74 = (char *)*puStack_80" identifier = (cast_expression "(char *)*puStack_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_80" * identifier))) ;) (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" * identifier) = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "ppcStack_70 = ppcVar4;" (assignment_expression "ppcStack_70 = ppcVar4" identifier = identifier) ;) (expression_statement "uStack_68 = param_1;" (assignment_expression "uStack_68 = param_1" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }" { (expression_statement "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;" (assignment_expression "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0" identifier = (binary_expression "*(int *)(puVar20 + 0x84040) + -0x15b0" (pointer_expression "*(int *)(puVar20 + 0x84040)" * (cast_expression "(int *)(puVar20 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x84040)" ( (binary_expression "puVar20 + 0x84040" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" else (if_statement "if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0')" ( (binary_expression "*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b)" * (cast_expression "(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0x8405c) + 0x16b)" ( (binary_expression "*(int *)(puVar20 + 0x8405c) + 0x16b" (pointer_expression "*(int *)(puVar20 + 0x8405c)" * (cast_expression "(int *)(puVar20 + 0x8405c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x8405c)" ( (binary_expression "puVar20 + 0x8405c" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }" { (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8" identifier = (binary_expression "*(int *)(puVar20 + 0x84040) + -0x15b8" (pointer_expression "*(int *)(puVar20 + 0x84040)" * (cast_expression "(int *)(puVar20 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x84040)" ( (binary_expression "puVar20 + 0x84040" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" else (compound_statement "{\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" { (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (expression_statement "debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);" (call_expression "debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8)" identifier (argument_list "(*(int *)(puVar20 + 0x84040) + -0x15a8)" ( (binary_expression "*(int *)(puVar20 + 0x84040) + -0x15a8" (pointer_expression "*(int *)(puVar20 + 0x84040)" * (cast_expression "(int *)(puVar20 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x84040)" ( (binary_expression "puVar20 + 0x84040" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8" identifier = (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" * (cast_expression "(int *)(puStack_90 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc4)" ( (binary_expression "puStack_90 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) }))))) (expression_statement "iVar17 = *(int *)(puStack_90 + -0x7c70);" (assignment_expression "iVar17 = *(int *)(puStack_90 + -0x7c70)" identifier = (pointer_expression "*(int *)(puStack_90 + -0x7c70)" * (cast_expression "(int *)(puStack_90 + -0x7c70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7c70)" ( (binary_expression "puStack_90 + -0x7c70" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);" (assignment_expression "uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(puStack_90 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc8)" * (cast_expression "(int *)(puStack_90 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc8)" ( (binary_expression "puStack_90 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);" (assignment_expression "uVar19 = *(undefined4 *)(puStack_90 + -0x7d38)" identifier = (pointer_expression "*(undefined4 *)(puStack_90 + -0x7d38)" * (cast_expression "(undefined4 *)(puStack_90 + -0x7d38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7d38)" ( (binary_expression "puStack_90 + -0x7d38" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8" identifier = (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" * (cast_expression "(int *)(puStack_90 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc4)" ( (binary_expression "puStack_90 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);" do (compound_statement "{\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  }" { (while_statement "while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" { (expression_statement "ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);" (assignment_expression "ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13)" identifier = (cast_expression "(char **)FUN_00029120(iVar5,ppcVar13)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(iVar5,ppcVar13)" identifier (argument_list "(iVar5,ppcVar13)" ( identifier , identifier ))))) ;) (expression_statement "puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" identifier = (cast_expression "(undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(puStack_90 + -0x77c8))" ( (pointer_expression "**(code **)(puStack_90 + -0x77c8)" * (pointer_expression "*(code **)(puStack_90 + -0x77c8)" * (cast_expression "(code **)(puStack_90 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x77c8)" ( (binary_expression "puStack_90 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))))) ;) (expression_statement "ppcVar4 = ppcVar7;" (assignment_expression "ppcVar4 = ppcVar7" identifier = identifier) ;) (expression_statement "uStack_98 = uVar23;" (assignment_expression "uStack_98 = uVar23" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(iVar6);" (assignment_expression "iVar5 = fd_write(iVar6)" identifier = (call_expression "fd_write(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }" { (expression_statement "(**(code **)(puStack_90 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(puStack_90 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" ( (pointer_expression "**(code **)(puStack_90 + -0x7728)" * (pointer_expression "*(code **)(puStack_90 + -0x7728)" * (cast_expression "(code **)(puStack_90 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x7728)" ( (binary_expression "puStack_90 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))) ;) (expression_statement "iVar9 = 0x2c;" (assignment_expression "iVar9 = 0x2c" identifier = number_literal) ;) (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 **)(puStack_90 + -0x7728))();" (call_expression "(**(code **)(puStack_90 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" ( (pointer_expression "**(code **)(puStack_90 + -0x7728)" * (pointer_expression "*(code **)(puStack_90 + -0x7728)" * (cast_expression "(code **)(puStack_90 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x7728)" ( (binary_expression "puStack_90 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar4 = &pcStack_78;" (assignment_expression "ppcVar4 = &pcStack_78" identifier = (pointer_expression "&pcStack_78" & identifier)) ;) (expression_statement "iVar9 = ftp_response(iVar6);" (assignment_expression "iVar9 = ftp_response(iVar6)" identifier = (call_expression "ftp_response(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "iVar5 = iVar18;" (assignment_expression "iVar5 = iVar18" identifier = identifier) ;) (if_statement "if (iVar9 != 7) break;" if (parenthesized_expression "(iVar9 != 7)" ( (binary_expression "iVar9 != 7" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppcVar4 = (char **)0x31;" (assignment_expression "ppcVar4 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_78 == '5')" ( (binary_expression "*pcStack_78 == '5'" (pointer_expression "*pcStack_78" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" else (if_statement "if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_78 == '1')" ( (binary_expression "*pcStack_78 == '1'" (pointer_expression "*pcStack_78" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }" { (expression_statement "*pbStack_7c = (byte)iVar14 ^ 1;" (assignment_expression "*pbStack_7c = (byte)iVar14 ^ 1" (pointer_expression "*pbStack_7c" * 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        iVar9 = 0xe;\n      }" else (compound_statement "{\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0xe;" (assignment_expression "iVar9 = 0xe" identifier = number_literal) ;) }))))) (expression_statement "iStack_84 = iVar9;" (assignment_expression "iStack_84 = iVar9" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_90 + -0x7728))();" (call_expression "(**(code **)(puStack_90 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" ( (pointer_expression "**(code **)(puStack_90 + -0x7728)" * (pointer_expression "*(code **)(puStack_90 + -0x7728)" * (cast_expression "(code **)(puStack_90 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x7728)" ( (binary_expression "puStack_90 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_78 = (char *)0x0;" (assignment_expression "pcStack_78 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar9 = iStack_84;" (assignment_expression "iVar9 = iStack_84" 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 ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;" if (parenthesized_expression "((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))" ( (binary_expression "(ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)" (parenthesized_expression "(ppcVar7 != (char **)&DAT_00000001)" ( (binary_expression "ppcVar7 != (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 = 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 (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }" { (labeled_statement "LAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }" statement_identifier : (if_statement "if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }" if (parenthesized_expression "((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))" ( (binary_expression "(ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')" (parenthesized_expression "(ppcVar7 == (char **)&DAT_00000001)" ( (binary_expression "ppcVar7 == (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 *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')" ( (binary_expression "*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'" (pointer_expression "*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" * (cast_expression "(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" ( (binary_expression "*(int *)(puStack_90 + -0x7fa8) + 0x16b" (pointer_expression "*(int *)(puStack_90 + -0x7fa8)" * (cast_expression "(int *)(puStack_90 + -0x7fa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fa8)" ( (binary_expression "puStack_90 + -0x7fa8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }" { (expression_statement "iStack_84 = iVar9;" (assignment_expression "iStack_84 = iVar9" identifier = identifier) ;) (expression_statement "debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);" (call_expression "debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590)" identifier (argument_list "(*(int *)(puStack_90 + -0x7fc4) + -0x1590)" ( (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x1590" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" * (cast_expression "(int *)(puStack_90 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc4)" ( (binary_expression "puStack_90 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar9 = iStack_84;" (assignment_expression "iVar9 = iStack_84" identifier = identifier) ;) }))) (break_statement "break;" break ;) })) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "(ppcVar7 == (char **)&DAT_00000001)" ( (binary_expression "ppcVar7 == (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_74 == (char *)*puStack_80) {\n    return iVar9;\n  }" statement_identifier : (if_statement "if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }" if (parenthesized_expression "(pcStack_74 == (char *)*puStack_80)" ( (binary_expression "pcStack_74 == (char *)*puStack_80" identifier == (cast_expression "(char *)*puStack_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_80" * identifier))) )) (compound_statement "{\n    return iVar9;\n  }" { (return_statement "return iVar9;" return identifier ;) }))) (expression_statement "pcVar21 = *(code **)(puStack_90 + -0x785c);" (assignment_expression "pcVar21 = *(code **)(puStack_90 + -0x785c)" identifier = (pointer_expression "*(code **)(puStack_90 + -0x785c)" * (cast_expression "(code **)(puStack_90 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x785c)" ( (binary_expression "puStack_90 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = ftp_syst;" (assignment_expression "pcVar22 = ftp_syst" identifier = identifier) ;) (expression_statement "pcVar10 = pcStack_74;" (assignment_expression "pcVar10 = pcStack_74" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_d8 = pcVar21 + 0x8bd8c;" (assignment_expression "pcStack_d8 = pcVar21 + 0x8bd8c" identifier = (binary_expression "pcVar21 + 0x8bd8c" identifier + number_literal)) ;) (expression_statement "piVar15 = *(int **)(pcVar21 + 0x84598);" (assignment_expression "piVar15 = *(int **)(pcVar21 + 0x84598)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x84598)" * (cast_expression "(int **)(pcVar21 + 0x84598)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x84598)" ( (binary_expression "pcVar21 + 0x84598" identifier + number_literal) ))))) ;) (expression_statement "iStack_cc = *piVar15;" (assignment_expression "iStack_cc = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "ppcStack_c8 = ppcVar7;" (assignment_expression "ppcStack_c8 = ppcVar7" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar14;" (assignment_expression "iStack_c4 = iVar14" identifier = identifier) ;) (expression_statement "iStack_c0 = iVar6;" (assignment_expression "iStack_c0 = iVar6" identifier = identifier) ;) (expression_statement "iStack_bc = iVar17 + -0x6ee0;" (assignment_expression "iStack_bc = iVar17 + -0x6ee0" identifier = (binary_expression "iVar17 + -0x6ee0" identifier + number_literal)) ;) (expression_statement "iStack_b8 = iVar18;" (assignment_expression "iStack_b8 = iVar18" identifier = identifier) ;) (expression_statement "ppcStack_b4 = ppcVar13;" (assignment_expression "ppcStack_b4 = ppcVar13" identifier = identifier) ;) (expression_statement "uStack_b0 = uVar19;" (assignment_expression "uStack_b0 = uVar19" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar22;" (assignment_expression "pcStack_ac = pcVar22" identifier = identifier) ;) (expression_statement "ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);" (assignment_expression "ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" identifier = (cast_expression "(char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" identifier (argument_list "(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" ( (binary_expression "*(int *)(pcVar21 + 0x83dc8) + -0x157c" (pointer_expression "*(int *)(pcVar21 + 0x83dc8)" * (cast_expression "(int *)(pcVar21 + 0x83dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x83dc8)" ( (binary_expression "pcVar21 + 0x83dc8" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);" (assignment_expression "uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_d8 + -0x77c8)" * (cast_expression "(code **)(pcStack_d8 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x77c8)" ( (binary_expression "pcStack_d8 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier )))) ;) (expression_statement "uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc8)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc8)" ( (binary_expression "pcStack_d8 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar13 = ppcVar7;" (assignment_expression "ppcVar13 = ppcVar7" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(pcVar10,ppcVar7,uVar19);" (assignment_expression "iVar5 = fd_write(pcVar10,ppcVar7,uVar19)" identifier = (call_expression "fd_write(pcVar10,ppcVar7,uVar19)" identifier (argument_list "(pcVar10,ppcVar7,uVar19)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7728))();" (call_expression "(**(code **)(pcStack_d8 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar13 = &pcStack_d0;" (assignment_expression "ppcVar13 = &pcStack_d0" identifier = (pointer_expression "&pcStack_d0" & identifier)) ;) (expression_statement "iVar5 = ftp_response(pcVar10);" (assignment_expression "iVar5 = ftp_response(pcVar10)" identifier = (call_expression "ftp_response(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) (expression_statement "pcVar3 = pcStack_d0;" (assignment_expression "pcVar3 = pcStack_d0" identifier = identifier) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }" { (if_statement "if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" if (parenthesized_expression "(*pcStack_d0 == '5')" ( (binary_expression "*pcStack_d0 == '5'" (pointer_expression "*pcStack_d0" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }" { (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_d0)" ( identifier ))) ;) (expression_statement "pcVar10 = pcStack_d0;" (assignment_expression "pcVar10 = pcStack_d0" identifier = identifier) ;) }) (else_clause "else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" else (compound_statement "{\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" { (expression_statement "iVar6 = *(int *)(pcStack_d8 + -0x7fc8);" (assignment_expression "iVar6 = *(int *)(pcStack_d8 + -0x7fc8)" identifier = (pointer_expression "*(int *)(pcStack_d8 + -0x7fc8)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc8)" ( (binary_expression "pcStack_d8 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);" (assignment_expression "uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x794c))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x794c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x794c)" * (cast_expression "(code **)(pcStack_d8 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x794c)" ( (binary_expression "pcStack_d8 + -0x794c" identifier + number_literal) ))))) )) (argument_list "(pcStack_d0)" ( identifier )))) ;) (expression_statement "(**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);" (call_expression "(**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7888)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7888)" * (cast_expression "(code **)(pcStack_d8 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7888)" ( (binary_expression "pcStack_d8 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcVar3,iVar6 + 0x4a48)" ( identifier , (binary_expression "iVar6 + 0x4a48" identifier + number_literal) ))) ;) (expression_statement "ppcVar13 = (char **)(iVar6 + 0x4a48);" (assignment_expression "ppcVar13 = (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 "pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);" (assignment_expression "pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0)" identifier = (cast_expression "(char *)(**(code **)(pcStack_d8 + -0x7888))(0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_d8 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7888)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7888)" * (cast_expression "(code **)(pcStack_d8 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7888)" ( (binary_expression "pcStack_d8 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "*puVar8 = 2;" (assignment_expression "*puVar8 = 2" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (if_statement "if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }" { (labeled_statement "LAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;" statement_identifier : (expression_statement "*ppcVar4 = (char *)0x5;" (assignment_expression "*ppcVar4 = (char *)0x5" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }" else (compound_statement "{\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1574" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            *ppcVar4 = (char *)0x1;\n          }" { (expression_statement "*ppcVar4 = (char *)0x1;" (assignment_expression "*ppcVar4 = (char *)0x1" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }" else (compound_statement "{\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }" { (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" ( identifier , (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1570" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }" { (expression_statement "iVar6 = *(int *)(pcStack_d8 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_d8 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) ))))) ;) (expression_statement "pcVar21 = *(code **)(pcStack_d8 + -0x7db0);" (assignment_expression "pcVar21 = *(code **)(pcStack_d8 + -0x7db0)" identifier = (pointer_expression "*(code **)(pcStack_d8 + -0x7db0)" * (cast_expression "(code **)(pcStack_d8 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7db0)" ( (binary_expression "pcStack_d8 + -0x7db0" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar4 = (char *)0x0;" (assignment_expression "*ppcVar4 = (char *)0x0" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar13 = (char **)(iVar6 + -0x1568);" (assignment_expression "ppcVar13 = (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 = (*pcVar21)(uVar19,ppcVar13,0x11);" (assignment_expression "iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11)" identifier = (call_expression "(*pcVar21)(uVar19,ppcVar13,0x11)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(uVar19,ppcVar13,0x11)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                *puVar8 = 0;\n              }" { (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) }) (else_clause "else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }" else (compound_statement "{\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1554" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7db0))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7db0)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7db0)" * (cast_expression "(code **)(pcStack_d8 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7db0)" ( (binary_expression "pcStack_d8 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(uVar19,ppcVar13,0x29)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  *puVar8 = 1;\n                }" { (expression_statement "*puVar8 = 1;" (assignment_expression "*puVar8 = 1" (pointer_expression "*puVar8" * identifier) = number_literal) ;) })) }))) }) (else_clause "else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }" else (compound_statement "{\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1528" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x151c" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1510" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    *ppcVar4 = (char *)0x3;\n                  }" { (expression_statement "*ppcVar4 = (char *)0x3;" (assignment_expression "*ppcVar4 = (char *)0x3" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }" else (compound_statement "{\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1508" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( 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 "*ppcVar4 = (char *)0x4;" (assignment_expression "*ppcVar4 = (char *)0x4" (pointer_expression "*ppcVar4" * 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 "*ppcVar4 = (char *)0x2;" (assignment_expression "*ppcVar4 = (char *)0x2" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) }))) (labeled_statement "LAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);" statement_identifier : (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(uVar19);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(uVar19)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_d0)" ( identifier ))) ;) }))) })) }))) (if_statement "if (iStack_cc == *piVar15) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_cc == *piVar15)" ( (binary_expression "iStack_cc == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar21 = *(code **)(pcStack_d8 + -0x785c);" (assignment_expression "pcVar21 = *(code **)(pcStack_d8 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_d8 + -0x785c)" * (cast_expression "(code **)(pcStack_d8 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x785c)" ( (binary_expression "pcStack_d8 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = ftp_pwd;" (assignment_expression "pcVar22 = ftp_pwd" identifier = identifier) ;) (expression_statement "iVar6 = iStack_cc;" (assignment_expression "iVar6 = iStack_cc" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_118 = pcVar21 + 0x8ba8c;" (assignment_expression "pcStack_118 = pcVar21 + 0x8ba8c" identifier = (binary_expression "pcVar21 + 0x8ba8c" identifier + number_literal)) ;) (expression_statement "piVar16 = *(int **)(pcVar21 + 0x84298);" (assignment_expression "piVar16 = *(int **)(pcVar21 + 0x84298)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x84298)" * (cast_expression "(int **)(pcVar21 + 0x84298)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x84298)" ( (binary_expression "pcVar21 + 0x84298" identifier + number_literal) ))))) ;) (expression_statement "iStack_10c = *piVar16;" (assignment_expression "iStack_10c = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iStack_104 = iVar5;" (assignment_expression "iStack_104 = iVar5" identifier = identifier) ;) (expression_statement "piStack_100 = piVar15;" (assignment_expression "piStack_100 = piVar15" identifier = identifier) ;) (expression_statement "pcStack_fc = pcVar10;" (assignment_expression "pcStack_fc = pcVar10" identifier = identifier) ;) (expression_statement "puStack_f8 = puVar8;" (assignment_expression "puStack_f8 = puVar8" identifier = identifier) ;) (expression_statement "pcStack_f4 = pcVar22;" (assignment_expression "pcStack_f4 = pcVar22" identifier = identifier) ;) (expression_statement "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);" (assignment_expression "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0)" identifier (argument_list "(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0)" ( (binary_expression "*(int *)(pcVar21 + 0x83ac8) + -0x1500" (pointer_expression "*(int *)(pcVar21 + 0x83ac8)" * (cast_expression "(int *)(pcVar21 + 0x83ac8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x83ac8)" ( (binary_expression "pcVar21 + 0x83ac8" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);" (assignment_expression "puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19)" identifier = (cast_expression "(undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_118 + -0x77c8))(uVar19)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_118 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_118 + -0x77c8)" * (cast_expression "(code **)(pcStack_118 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x77c8)" ( (binary_expression "pcStack_118 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))))) ;) (expression_statement "uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_118 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_118 + -0x7fc8)" * (cast_expression "(int *)(pcStack_118 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_118 + -0x7fc8)" ( (binary_expression "pcStack_118 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = fd_write(iVar6,uVar19);" (assignment_expression "iVar5 = fd_write(iVar6,uVar19)" identifier = (call_expression "fd_write(iVar6,uVar19)" identifier (argument_list "(iVar6,uVar19)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_118 + -0x7728))(uVar19);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(uVar19)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" { (expression_statement "(**(code **)(pcStack_118 + -0x7728))();" (call_expression "(**(code **)(pcStack_118 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_110);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_110)" identifier = (call_expression "ftp_response(iVar6,&pcStack_110)" identifier (argument_list "(iVar6,&pcStack_110)" ( identifier , (pointer_expression "&pcStack_110" & identifier) )))) ;) (if_statement "if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }" { (expression_statement "iVar6 = *(int *)(pcStack_118 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_118 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_118 + -0x7fc4)" * (cast_expression "(int *)(pcStack_118 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_118 + -0x7fc4)" ( (binary_expression "pcStack_118 + -0x7fc4" identifier + number_literal) ))))) ;) (if_statement "if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }" if (parenthesized_expression "(*pcStack_110 != '5')" ( (binary_expression "*pcStack_110 != '5'" (pointer_expression "*pcStack_110" * identifier) != (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }" { (expression_statement "(**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);" (call_expression "(**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7888)" * (pointer_expression "*(code **)(pcStack_118 + -0x7888)" * (cast_expression "(code **)(pcStack_118 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7888)" ( (binary_expression "pcStack_118 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcStack_110,iVar6 + -0x3d0)" ( identifier , (binary_expression "iVar6 + -0x3d0" identifier + number_literal) ))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);" (assignment_expression "iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0)" identifier = (call_expression "(**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7888)" * (pointer_expression "*(code **)(pcStack_118 + -0x7888)" * (cast_expression "(code **)(pcStack_118 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7888)" ( (binary_expression "pcStack_118 + -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_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }" { (expression_statement "(**(code **)(pcStack_118 + -0x7728))(*ppcVar13);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(*ppcVar13)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(*ppcVar13)" ( (pointer_expression "*ppcVar13" * identifier) ))) ;) (expression_statement "pcVar21 = *(code **)(pcStack_118 + -0x7fa4);" (assignment_expression "pcVar21 = *(code **)(pcStack_118 + -0x7fa4)" identifier = (pointer_expression "*(code **)(pcStack_118 + -0x7fa4)" * (cast_expression "(code **)(pcStack_118 + -0x7fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7fa4)" ( (binary_expression "pcStack_118 + -0x7fa4" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar13 = (char *)0x0;" (assignment_expression "*ppcVar13 = (char *)0x0" (pointer_expression "*ppcVar13" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar10 = (char *)(*pcVar21)(iVar6);" (assignment_expression "pcVar10 = (char *)(*pcVar21)(iVar6)" identifier = (cast_expression "(char *)(*pcVar21)(iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar21)(iVar6)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "pcVar21 = *(code **)(pcStack_118 + -0x7728);" (assignment_expression "pcVar21 = *(code **)(pcStack_118 + -0x7728)" identifier = (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar13 = pcVar10;" (assignment_expression "*ppcVar13 = pcVar10" (pointer_expression "*ppcVar13" * identifier) = identifier) ;) (expression_statement "(*pcVar21)(pcStack_110);" (call_expression "(*pcVar21)(pcStack_110)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(pcStack_110)" ( identifier ))) ;) (goto_statement "goto LAB_0002bae8;" goto statement_identifier ;) })) })) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_118 + -0x7728))(pcStack_110);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(pcStack_110)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_110)" ( identifier ))) ;) })) }))) (labeled_statement "LAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (iStack_10c == *piVar16) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_10c == *piVar16)" ( (binary_expression "iStack_10c == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar21 = *(code **)(pcStack_118 + -0x785c);" (assignment_expression "pcVar21 = *(code **)(pcStack_118 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_118 + -0x785c)" * (cast_expression "(code **)(pcStack_118 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x785c)" ( (binary_expression "pcStack_118 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = ftp_size;" (assignment_expression "pcVar22 = ftp_size" identifier = identifier) ;) (expression_statement "iVar14 = iStack_10c;" (assignment_expression "iVar14 = iStack_10c" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = *(int **)(pcVar21 + 0x840f4);" (assignment_expression "piVar15 = *(int **)(pcVar21 + 0x840f4)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x840f4)" * (cast_expression "(int **)(pcVar21 + 0x840f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x840f4)" ( (binary_expression "pcVar21 + 0x840f4" identifier + number_literal) ))))) ;) (expression_statement "iStack_14c = *piVar15;" (assignment_expression "iStack_14c = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "iStack_148 = iVar5;" (assignment_expression "iStack_148 = iVar5" identifier = identifier) ;) (expression_statement "piStack_144 = piVar16;" (assignment_expression "piStack_144 = piVar16" identifier = identifier) ;) (expression_statement "iStack_140 = iVar6;" (assignment_expression "iStack_140 = iVar6" identifier = identifier) ;) (expression_statement "ppcStack_13c = ppcVar13;" (assignment_expression "ppcStack_13c = ppcVar13" identifier = identifier) ;) (expression_statement "ppcStack_138 = ppcVar4;" (assignment_expression "ppcStack_138 = ppcVar4" identifier = identifier) ;) (expression_statement "pcStack_134 = pcVar22;" (assignment_expression "pcStack_134 = pcVar22" identifier = identifier) ;) (expression_statement "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);" (assignment_expression "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc)" identifier (argument_list "(*(int *)(pcVar21 + 0x83924) + -0x14fc)" ( (binary_expression "*(int *)(pcVar21 + 0x83924) + -0x14fc" (pointer_expression "*(int *)(pcVar21 + 0x83924)" * (cast_expression "(int *)(pcVar21 + 0x83924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x83924)" ( (binary_expression "pcVar21 + 0x83924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);" (assignment_expression "uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19)" identifier = (call_expression "(**(code **)(pcVar21 + 0x84120))(uVar19)" (parenthesized_expression "(**(code **)(pcVar21 + 0x84120))" ( (pointer_expression "**(code **)(pcVar21 + 0x84120)" * (pointer_expression "*(code **)(pcVar21 + 0x84120)" * (cast_expression "(code **)(pcVar21 + 0x84120)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x84120)" ( (binary_expression "pcVar21 + 0x84120" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "iVar5 = fd_write(iVar14,uVar19,uVar12);" (assignment_expression "iVar5 = fd_write(iVar14,uVar19,uVar12)" identifier = (call_expression "fd_write(iVar14,uVar19,uVar12)" identifier (argument_list "(iVar14,uVar19,uVar12)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar21 + 0x841c0))(uVar19);" (call_expression "(**(code **)(pcVar21 + 0x841c0))(uVar19)" (parenthesized_expression "(**(code **)(pcVar21 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar21 + 0x841c0)" * (pointer_expression "*(code **)(pcVar21 + 0x841c0)" * (cast_expression "(code **)(pcVar21 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841c0)" ( (binary_expression "pcVar21 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "*(undefined4 *)((int)puVar11 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar11 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar11 + 4)" * (cast_expression "(undefined4 *)((int)puVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 4)" ( (binary_expression "(int)puVar11 + 4" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" { (expression_statement "(**(code **)(pcVar21 + 0x841c0))();" (call_expression "(**(code **)(pcVar21 + 0x841c0))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar21 + 0x841c0)" * (pointer_expression "*(code **)(pcVar21 + 0x841c0)" * (cast_expression "(code **)(pcVar21 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841c0)" ( (binary_expression "pcVar21 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar14,&pcStack_150);" (assignment_expression "iVar5 = ftp_response(iVar14,&pcStack_150)" identifier = (call_expression "ftp_response(iVar14,&pcStack_150)" identifier (argument_list "(iVar14,&pcStack_150)" ( identifier , (pointer_expression "&pcStack_150" & identifier) )))) ;) (expression_statement "pcVar10 = pcStack_150;" (assignment_expression "pcVar10 = pcStack_150" identifier = identifier) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }" { (if_statement "if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" if (parenthesized_expression "(*pcStack_150 == '5')" ( (binary_expression "*pcStack_150 == '5'" (pointer_expression "*pcStack_150" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }" { (expression_statement "pcVar22 = *(code **)(pcVar21 + 0x841c0);" (assignment_expression "pcVar22 = *(code **)(pcVar21 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar21 + 0x841c0)" * (cast_expression "(code **)(pcVar21 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841c0)" ( (binary_expression "pcVar21 + 0x841c0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" else (compound_statement "{\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" { (expression_statement "piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();" (assignment_expression "piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))()" identifier = (cast_expression "(int *)(**(code **)(pcVar21 + 0x84348))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar21 + 0x84348))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x84348))" ( (pointer_expression "**(code **)(pcVar21 + 0x84348)" * (pointer_expression "*(code **)(pcVar21 + 0x84348)" * (cast_expression "(code **)(pcVar21 + 0x84348)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x84348)" ( (binary_expression "pcVar21 + 0x84348" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar16 = 0;" (assignment_expression "*piVar16 = 0" (pointer_expression "*piVar16" * identifier) = number_literal) ;) (expression_statement "uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);" (assignment_expression "uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10)" identifier = (call_expression "(**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10)" (parenthesized_expression "(**(code **)(pcVar21 + 0x841f4))" ( (pointer_expression "**(code **)(pcVar21 + 0x841f4)" * (pointer_expression "*(code **)(pcVar21 + 0x841f4)" * (cast_expression "(code **)(pcVar21 + 0x841f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841f4)" ( (binary_expression "pcVar21 + 0x841f4" identifier + number_literal) ))))) )) (argument_list "(pcVar10 + 4,0,10)" ( (binary_expression "pcVar10 + 4" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "iVar6 = *piVar16;" (assignment_expression "iVar6 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "*puVar11 = uVar23;" (assignment_expression "*puVar11 = uVar23" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "pcVar22 = *(code **)(pcVar21 + 0x841c0);" (assignment_expression "pcVar22 = *(code **)(pcVar21 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar21 + 0x841c0)" * (cast_expression "(code **)(pcVar21 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841c0)" ( (binary_expression "pcVar21 + 0x841c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }" { (expression_statement "(*pcVar22)(pcStack_150);" (call_expression "(*pcVar22)(pcStack_150)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcStack_150)" ( identifier ))) ;) (goto_statement "goto LAB_0002bc24;" goto statement_identifier ;) })) }))) (expression_statement "(*pcVar22)(pcStack_150);" (call_expression "(*pcVar22)(pcStack_150)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcStack_150)" ( identifier ))) ;) })) (expression_statement "*(undefined4 *)((int)puVar11 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar11 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar11 + 4)" * (cast_expression "(undefined4 *)((int)puVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 4)" ( (binary_expression "(int)puVar11 + 4" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (labeled_statement "LAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (iStack_14c == *piVar15) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_14c == *piVar15)" ( (binary_expression "iStack_14c == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar21 = *(code **)(pcVar21 + 0x8408c);" (assignment_expression "pcVar21 = *(code **)(pcVar21 + 0x8408c)" identifier = (pointer_expression "*(code **)(pcVar21 + 0x8408c)" * (cast_expression "(code **)(pcVar21 + 0x8408c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x8408c)" ( (binary_expression "pcVar21 + 0x8408c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iStack_14c;" (assignment_expression "iVar5 = iStack_14c" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * 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 **)(pcVar21 + 0x83e84))();" (assignment_expression "iVar6 = (**(code **)(pcVar21 + 0x83e84))()" identifier = (call_expression "(**(code **)(pcVar21 + 0x83e84))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x83e84))" ( (pointer_expression "**(code **)(pcVar21 + 0x83e84)" * (pointer_expression "*(code **)(pcVar21 + 0x83e84)" * (cast_expression "(code **)(pcVar21 + 0x83e84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x83e84)" ( (binary_expression "pcVar21 + 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_retr(int csock,char *file)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char **ppcVar3;\n  int iVar4;\n  int iVar5;\n  uerr_t uVar6;\n  char **ppcVar7;\n  undefined4 *bufsize;\n  int iVar8;\n  char **buf;\n  undefined8 *bufsize_00;\n  char *pcVar9;\n  char **ppcVar10;\n  int in_a3;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  char *pcVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  double in_f12_13;\n  char *pcStack_150;\n  int iStack_14c;\n  uerr_t uStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  uerr_t uStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  char *pcStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  uerr_t uStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  int iStack_68;\n  byte *local_30;\n  char *respline;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar3 = (char **)ftp_request(PTR_s_hallenge__000af46c + -0x15c0,file);\n  iVar4 = (*(code *)PTR_strlen_000afc68)(ppcVar3);\n  uVar19 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar10 = ppcVar3;\n  iVar5 = fd_write(csock,(char *)ppcVar3,iVar4,in_f12_13);\n  if (iVar5 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar3);\n    uVar6 = WRITEFAILED;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar10 = &respline;\n    uVar6 = ftp_response(csock,ppcVar10);\n    if (uVar6 == FTPOK) {\n      ppcVar10 = (char **)0x31;\n      if (*respline == '5') {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\n      }\n      else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return uVar6;\n  }\n  iVar5 = local_14;\n  puVar16 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar16 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar16 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar19 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar11 = 0;\n  ppcStack_70 = ppcVar3;\n  iStack_68 = csock;\n  if (iVar4 == 0) {\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b0);\n  }\n  else if (*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b) == '\0') {\n    iVar11 = 1;\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar11 = 1;\n    debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  }\n  iVar4 = *(int *)(puStack_90 + -0x7c70);\n  uVar19 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar15 = *(undefined4 *)(puStack_90 + -0x7d38);\n  pcVar14 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  do {\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10);\n      bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar3 = ppcVar7;\n      uStack_98 = uVar19;\n      iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        uVar6 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar11 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar3 = &pcStack_78;\n      uVar6 = ftp_response(iVar5,&pcStack_78);\n      pcVar9 = pcVar14;\n      if (uVar6 != FTPOK) break;\n      ppcVar3 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar11 = 0;\n        uVar6 = FTPNSFOD;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }\n      uStack_84 = uVar6;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      uVar6 = uStack_84;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\n      }\n      break;\n    }\n    iVar11 = 1;\n  } while (ppcVar7 == (char **)0x1);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(puStack_90 + -0x785c);\n  pcVar18 = ftp_syst;\n  pcVar9 = pcStack_74;\n  (*pcVar17)();\n  pcStack_d8 = pcVar17 + 0x8bd8c;\n  piVar12 = *(int **)(pcVar17 + 0x84598);\n  iStack_cc = *piVar12;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar11;\n  iStack_c0 = iVar5;\n  iStack_bc = iVar4 + -0x6ee0;\n  pcStack_b8 = pcVar14;\n  ppcStack_b4 = ppcVar10;\n  uStack_b0 = uVar15;\n  pcStack_ac = pcVar18;\n  ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c),(char *)0x0);\n  iVar4 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar10 = ppcVar7;\n  iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar10 = &pcStack_d0;\n    uVar6 = ftp_response((int)pcVar9,ppcVar10);\n    pcVar14 = pcStack_d0;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_d0 == '5') {\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar12) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar18 = ftp_pwd;\n  iVar4 = iStack_cc;\n  (*pcVar17)();\n  pcStack_118 = pcVar17 + 0x8ba8c;\n  piVar13 = *(int **)(pcVar17 + 0x84298);\n  iStack_10c = *piVar13;\n  uStack_104 = uVar6;\n  piStack_100 = piVar12;\n  pcStack_fc = pcVar9;\n  puStack_f8 = bufsize;\n  pcStack_f4 = pcVar18;\n  buf = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500),(char *)0x0);\n  bufsize_00 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(buf);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  ppcVar7 = buf;\n  iVar5 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);\n  if (iVar5 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_118 + -0x7728))(buf);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    ppcVar7 = &pcStack_110;\n    uVar6 = ftp_response(iVar4,ppcVar7);\n    if (uVar6 == FTPOK) {\n      iVar4 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar6 = FTPSRVERR;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar13) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(pcStack_118 + -0x785c);\n  pcVar18 = ftp_size;\n  iVar5 = iStack_10c;\n  (*pcVar17)();\n  piVar12 = *(int **)(pcVar17 + 0x840f4);\n  iStack_14c = *piVar12;\n  uStack_148 = uVar6;\n  piStack_144 = piVar13;\n  iStack_140 = iVar4;\n  ppcStack_13c = ppcVar10;\n  ppcStack_138 = ppcVar3;\n  pcStack_134 = pcVar18;\n  pcVar9 = ftp_request((char *)(*(int *)(pcVar17 + 0x83924) + -0x14fc),(char *)ppcVar7);\n  iVar4 = (**(code **)(pcVar17 + 0x84120))(pcVar9);\n  iVar4 = fd_write(iVar5,pcVar9,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcVar17 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\n  else {\n    (**(code **)(pcVar17 + 0x841c0))();\n    uVar6 = ftp_response(iVar5,&pcStack_150);\n    pcVar9 = pcStack_150;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_150 == '5') {\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }\n      else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar18)(pcStack_150);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar12) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(pcVar17 + 0x8408c);\n  iVar4 = iStack_14c;\n  (*pcVar17)();\n  if (iVar4 == 0) {\n    return 0x49;\n  }\n  iVar5 = (**(code **)(pcVar17 + 0x83e84))();\n  if (iVar5 == 0) {\n    uVar6 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar6 != NOCONERROR) {\n      if (uVar6 - 0x61 < 0x1a) {\n        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar6;\n    }\n  }\n  return 0x49;\n}\n\n" (function_definition "uerr_t ftp_retr(int csock,char *file)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char **ppcVar3;\n  int iVar4;\n  int iVar5;\n  uerr_t uVar6;\n  char **ppcVar7;\n  undefined4 *bufsize;\n  int iVar8;\n  char **buf;\n  undefined8 *bufsize_00;\n  char *pcVar9;\n  char **ppcVar10;\n  int in_a3;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  char *pcVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  double in_f12_13;\n  char *pcStack_150;\n  int iStack_14c;\n  uerr_t uStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  uerr_t uStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  char *pcStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  uerr_t uStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  int iStack_68;\n  byte *local_30;\n  char *respline;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar3 = (char **)ftp_request(PTR_s_hallenge__000af46c + -0x15c0,file);\n  iVar4 = (*(code *)PTR_strlen_000afc68)(ppcVar3);\n  uVar19 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar10 = ppcVar3;\n  iVar5 = fd_write(csock,(char *)ppcVar3,iVar4,in_f12_13);\n  if (iVar5 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar3);\n    uVar6 = WRITEFAILED;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar10 = &respline;\n    uVar6 = ftp_response(csock,ppcVar10);\n    if (uVar6 == FTPOK) {\n      ppcVar10 = (char **)0x31;\n      if (*respline == '5') {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\n      }\n      else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return uVar6;\n  }\n  iVar5 = local_14;\n  puVar16 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar16 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar16 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar19 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar11 = 0;\n  ppcStack_70 = ppcVar3;\n  iStack_68 = csock;\n  if (iVar4 == 0) {\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b0);\n  }\n  else if (*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b) == '\0') {\n    iVar11 = 1;\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar11 = 1;\n    debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  }\n  iVar4 = *(int *)(puStack_90 + -0x7c70);\n  uVar19 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar15 = *(undefined4 *)(puStack_90 + -0x7d38);\n  pcVar14 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  do {\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10);\n      bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar3 = ppcVar7;\n      uStack_98 = uVar19;\n      iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        uVar6 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar11 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar3 = &pcStack_78;\n      uVar6 = ftp_response(iVar5,&pcStack_78);\n      pcVar9 = pcVar14;\n      if (uVar6 != FTPOK) break;\n      ppcVar3 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar11 = 0;\n        uVar6 = FTPNSFOD;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }\n      uStack_84 = uVar6;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      uVar6 = uStack_84;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\n      }\n      break;\n    }\n    iVar11 = 1;\n  } while (ppcVar7 == (char **)0x1);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(puStack_90 + -0x785c);\n  pcVar18 = ftp_syst;\n  pcVar9 = pcStack_74;\n  (*pcVar17)();\n  pcStack_d8 = pcVar17 + 0x8bd8c;\n  piVar12 = *(int **)(pcVar17 + 0x84598);\n  iStack_cc = *piVar12;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar11;\n  iStack_c0 = iVar5;\n  iStack_bc = iVar4 + -0x6ee0;\n  pcStack_b8 = pcVar14;\n  ppcStack_b4 = ppcVar10;\n  uStack_b0 = uVar15;\n  pcStack_ac = pcVar18;\n  ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c),(char *)0x0);\n  iVar4 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar10 = ppcVar7;\n  iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar10 = &pcStack_d0;\n    uVar6 = ftp_response((int)pcVar9,ppcVar10);\n    pcVar14 = pcStack_d0;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_d0 == '5') {\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar12) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar18 = ftp_pwd;\n  iVar4 = iStack_cc;\n  (*pcVar17)();\n  pcStack_118 = pcVar17 + 0x8ba8c;\n  piVar13 = *(int **)(pcVar17 + 0x84298);\n  iStack_10c = *piVar13;\n  uStack_104 = uVar6;\n  piStack_100 = piVar12;\n  pcStack_fc = pcVar9;\n  puStack_f8 = bufsize;\n  pcStack_f4 = pcVar18;\n  buf = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500),(char *)0x0);\n  bufsize_00 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(buf);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  ppcVar7 = buf;\n  iVar5 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);\n  if (iVar5 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_118 + -0x7728))(buf);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    ppcVar7 = &pcStack_110;\n    uVar6 = ftp_response(iVar4,ppcVar7);\n    if (uVar6 == FTPOK) {\n      iVar4 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar6 = FTPSRVERR;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar13) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(pcStack_118 + -0x785c);\n  pcVar18 = ftp_size;\n  iVar5 = iStack_10c;\n  (*pcVar17)();\n  piVar12 = *(int **)(pcVar17 + 0x840f4);\n  iStack_14c = *piVar12;\n  uStack_148 = uVar6;\n  piStack_144 = piVar13;\n  iStack_140 = iVar4;\n  ppcStack_13c = ppcVar10;\n  ppcStack_138 = ppcVar3;\n  pcStack_134 = pcVar18;\n  pcVar9 = ftp_request((char *)(*(int *)(pcVar17 + 0x83924) + -0x14fc),(char *)ppcVar7);\n  iVar4 = (**(code **)(pcVar17 + 0x84120))(pcVar9);\n  iVar4 = fd_write(iVar5,pcVar9,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcVar17 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\n  else {\n    (**(code **)(pcVar17 + 0x841c0))();\n    uVar6 = ftp_response(iVar5,&pcStack_150);\n    pcVar9 = pcStack_150;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_150 == '5') {\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }\n      else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar18)(pcStack_150);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar12) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(pcVar17 + 0x8408c);\n  iVar4 = iStack_14c;\n  (*pcVar17)();\n  if (iVar4 == 0) {\n    return 0x49;\n  }\n  iVar5 = (**(code **)(pcVar17 + 0x83e84))();\n  if (iVar5 == 0) {\n    uVar6 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar6 != NOCONERROR) {\n      if (uVar6 - 0x61 < 0x1a) {\n        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar6;\n    }\n  }\n  return 0x49;\n}" type_identifier (function_declarator "ftp_retr(int csock,char *file)" identifier (parameter_list "(int csock,char *file)" ( (parameter_declaration "int csock" primitive_type identifier) , (parameter_declaration "char *file" primitive_type (pointer_declarator "*file" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  char **ppcVar3;\n  int iVar4;\n  int iVar5;\n  uerr_t uVar6;\n  char **ppcVar7;\n  undefined4 *bufsize;\n  int iVar8;\n  char **buf;\n  undefined8 *bufsize_00;\n  char *pcVar9;\n  char **ppcVar10;\n  int in_a3;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  char *pcVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  code *pcVar18;\n  undefined8 uVar19;\n  double in_f12_13;\n  char *pcStack_150;\n  int iStack_14c;\n  uerr_t uStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  uerr_t uStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  char *pcStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  uerr_t uStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  int iStack_68;\n  byte *local_30;\n  char *respline;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar3 = (char **)ftp_request(PTR_s_hallenge__000af46c + -0x15c0,file);\n  iVar4 = (*(code *)PTR_strlen_000afc68)(ppcVar3);\n  uVar19 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar10 = ppcVar3;\n  iVar5 = fd_write(csock,(char *)ppcVar3,iVar4,in_f12_13);\n  if (iVar5 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar3);\n    uVar6 = WRITEFAILED;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar10 = &respline;\n    uVar6 = ftp_response(csock,ppcVar10);\n    if (uVar6 == FTPOK) {\n      ppcVar10 = (char **)0x31;\n      if (*respline == '5') {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\n      }\n      else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return uVar6;\n  }\n  iVar5 = local_14;\n  puVar16 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar16 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar16 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar19 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar11 = 0;\n  ppcStack_70 = ppcVar3;\n  iStack_68 = csock;\n  if (iVar4 == 0) {\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b0);\n  }\n  else if (*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b) == '\0') {\n    iVar11 = 1;\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar11 = 1;\n    debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  }\n  iVar4 = *(int *)(puStack_90 + -0x7c70);\n  uVar19 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar15 = *(undefined4 *)(puStack_90 + -0x7d38);\n  pcVar14 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  do {\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10);\n      bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar3 = ppcVar7;\n      uStack_98 = uVar19;\n      iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        uVar6 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar11 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar3 = &pcStack_78;\n      uVar6 = ftp_response(iVar5,&pcStack_78);\n      pcVar9 = pcVar14;\n      if (uVar6 != FTPOK) break;\n      ppcVar3 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar11 = 0;\n        uVar6 = FTPNSFOD;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }\n      uStack_84 = uVar6;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      uVar6 = uStack_84;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\n      }\n      break;\n    }\n    iVar11 = 1;\n  } while (ppcVar7 == (char **)0x1);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(puStack_90 + -0x785c);\n  pcVar18 = ftp_syst;\n  pcVar9 = pcStack_74;\n  (*pcVar17)();\n  pcStack_d8 = pcVar17 + 0x8bd8c;\n  piVar12 = *(int **)(pcVar17 + 0x84598);\n  iStack_cc = *piVar12;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar11;\n  iStack_c0 = iVar5;\n  iStack_bc = iVar4 + -0x6ee0;\n  pcStack_b8 = pcVar14;\n  ppcStack_b4 = ppcVar10;\n  uStack_b0 = uVar15;\n  pcStack_ac = pcVar18;\n  ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c),(char *)0x0);\n  iVar4 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar10 = ppcVar7;\n  iVar4 = fd_write((int)pcVar9,(char *)ppcVar7,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar10 = &pcStack_d0;\n    uVar6 = ftp_response((int)pcVar9,ppcVar10);\n    pcVar14 = pcStack_d0;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_d0 == '5') {\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar12) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar18 = ftp_pwd;\n  iVar4 = iStack_cc;\n  (*pcVar17)();\n  pcStack_118 = pcVar17 + 0x8ba8c;\n  piVar13 = *(int **)(pcVar17 + 0x84298);\n  iStack_10c = *piVar13;\n  uStack_104 = uVar6;\n  piStack_100 = piVar12;\n  pcStack_fc = pcVar9;\n  puStack_f8 = bufsize;\n  pcStack_f4 = pcVar18;\n  buf = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500),(char *)0x0);\n  bufsize_00 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(buf);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  ppcVar7 = buf;\n  iVar5 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);\n  if (iVar5 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_118 + -0x7728))(buf);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    ppcVar7 = &pcStack_110;\n    uVar6 = ftp_response(iVar4,ppcVar7);\n    if (uVar6 == FTPOK) {\n      iVar4 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar6 = FTPSRVERR;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar13) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(pcStack_118 + -0x785c);\n  pcVar18 = ftp_size;\n  iVar5 = iStack_10c;\n  (*pcVar17)();\n  piVar12 = *(int **)(pcVar17 + 0x840f4);\n  iStack_14c = *piVar12;\n  uStack_148 = uVar6;\n  piStack_144 = piVar13;\n  iStack_140 = iVar4;\n  ppcStack_13c = ppcVar10;\n  ppcStack_138 = ppcVar3;\n  pcStack_134 = pcVar18;\n  pcVar9 = ftp_request((char *)(*(int *)(pcVar17 + 0x83924) + -0x14fc),(char *)ppcVar7);\n  iVar4 = (**(code **)(pcVar17 + 0x84120))(pcVar9);\n  iVar4 = fd_write(iVar5,pcVar9,iVar4,in_f12_13);\n  if (iVar4 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcVar17 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\n  else {\n    (**(code **)(pcVar17 + 0x841c0))();\n    uVar6 = ftp_response(iVar5,&pcStack_150);\n    pcVar9 = pcStack_150;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_150 == '5') {\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }\n      else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar18)(pcStack_150);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar12) {\n    return uVar6;\n  }\n  pcVar17 = *(code **)(pcVar17 + 0x8408c);\n  iVar4 = iStack_14c;\n  (*pcVar17)();\n  if (iVar4 == 0) {\n    return 0x49;\n  }\n  iVar5 = (**(code **)(pcVar17 + 0x83e84))();\n  if (iVar5 == 0) {\n    uVar6 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar6 != NOCONERROR) {\n      if (uVar6 - 0x61 < 0x1a) {\n        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar6;\n    }\n  }\n  return 0x49;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char **ppcVar3;" primitive_type (pointer_declarator "**ppcVar3" * (pointer_declarator "*ppcVar3" * identifier)) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uerr_t uVar6;" type_identifier identifier ;) (declaration "char **ppcVar7;" primitive_type (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "undefined4 *bufsize;" type_identifier (pointer_declarator "*bufsize" * identifier) ;) (declaration "int iVar8;" primitive_type 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 "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char **ppcVar10;" primitive_type (pointer_declarator "**ppcVar10" * (pointer_declarator "*ppcVar10" * identifier)) ;) (declaration "int in_a3;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined8 uVar19;" type_identifier identifier ;) (declaration "double in_f12_13;" primitive_type identifier ;) (declaration "char *pcStack_150;" primitive_type (pointer_declarator "*pcStack_150" * identifier) ;) (declaration "int iStack_14c;" primitive_type identifier ;) (declaration "uerr_t uStack_148;" type_identifier identifier ;) (declaration "int *piStack_144;" primitive_type (pointer_declarator "*piStack_144" * identifier) ;) (declaration "int iStack_140;" primitive_type identifier ;) (declaration "char **ppcStack_13c;" primitive_type (pointer_declarator "**ppcStack_13c" * (pointer_declarator "*ppcStack_13c" * identifier)) ;) (declaration "char **ppcStack_138;" primitive_type (pointer_declarator "**ppcStack_138" * (pointer_declarator "*ppcStack_138" * identifier)) ;) (declaration "code *pcStack_134;" type_identifier (pointer_declarator "*pcStack_134" * identifier) ;) (declaration "undefined8 uStack_120;" type_identifier identifier ;) (declaration "code *pcStack_118;" type_identifier (pointer_declarator "*pcStack_118" * identifier) ;) (declaration "char *pcStack_110;" primitive_type (pointer_declarator "*pcStack_110" * identifier) ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "uerr_t uStack_104;" type_identifier identifier ;) (declaration "int *piStack_100;" primitive_type (pointer_declarator "*piStack_100" * identifier) ;) (declaration "char *pcStack_fc;" primitive_type (pointer_declarator "*pcStack_fc" * identifier) ;) (declaration "undefined4 *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "code *pcStack_f4;" type_identifier (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "undefined8 uStack_e0;" type_identifier identifier ;) (declaration "code *pcStack_d8;" type_identifier (pointer_declarator "*pcStack_d8" * identifier) ;) (declaration "char *pcStack_d0;" primitive_type (pointer_declarator "*pcStack_d0" * identifier) ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "char **ppcStack_c8;" primitive_type (pointer_declarator "**ppcStack_c8" * (pointer_declarator "*ppcStack_c8" * identifier)) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "int iStack_c0;" primitive_type identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "char *pcStack_b8;" primitive_type (pointer_declarator "*pcStack_b8" * identifier) ;) (declaration "char **ppcStack_b4;" primitive_type (pointer_declarator "**ppcStack_b4" * (pointer_declarator "*ppcStack_b4" * identifier)) ;) (declaration "undefined4 uStack_b0;" type_identifier identifier ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "undefined8 uStack_98;" type_identifier identifier ;) (declaration "undefined *puStack_90;" type_identifier (pointer_declarator "*puStack_90" * identifier) ;) (declaration "uerr_t uStack_84;" type_identifier identifier ;) (declaration "undefined4 *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "byte *pbStack_7c;" type_identifier (pointer_declarator "*pbStack_7c" * identifier) ;) (declaration "char *pcStack_78;" primitive_type (pointer_declarator "*pcStack_78" * identifier) ;) (declaration "char *pcStack_74;" primitive_type (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "char **ppcStack_70;" primitive_type (pointer_declarator "**ppcStack_70" * (pointer_declarator "*ppcStack_70" * identifier)) ;) (declaration "undefined *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "int iStack_68;" primitive_type identifier ;) (declaration "byte *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "char *respline;" primitive_type (pointer_declarator "*respline" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_14 = *(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))) ;) (expression_statement "ppcVar3 = (char **)ftp_request(PTR_s_hallenge__000af46c + -0x15c0,file);" (assignment_expression "ppcVar3 = (char **)ftp_request(PTR_s_hallenge__000af46c + -0x15c0,file)" identifier = (cast_expression "(char **)ftp_request(PTR_s_hallenge__000af46c + -0x15c0,file)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request(PTR_s_hallenge__000af46c + -0x15c0,file)" identifier (argument_list "(PTR_s_hallenge__000af46c + -0x15c0,file)" ( (binary_expression "PTR_s_hallenge__000af46c + -0x15c0" identifier + number_literal) , identifier ))))) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_000afc68)(ppcVar3);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_000afc68)(ppcVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000afc68)(ppcVar3)" (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 "(ppcVar3)" ( identifier )))) ;) (expression_statement "uVar19 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);" (assignment_expression "uVar19 = *(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 "ppcVar10 = ppcVar3;" (assignment_expression "ppcVar10 = ppcVar3" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(csock,(char *)ppcVar3,iVar4,in_f12_13);" (assignment_expression "iVar5 = fd_write(csock,(char *)ppcVar3,iVar4,in_f12_13)" identifier = (call_expression "fd_write(csock,(char *)ppcVar3,iVar4,in_f12_13)" identifier (argument_list "(csock,(char *)ppcVar3,iVar4,in_f12_13)" ( identifier , (cast_expression "(char *)ppcVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar3);\n    uVar6 = WRITEFAILED;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar10 = &respline;\n    uVar6 = ftp_response(csock,ppcVar10);\n    if (uVar6 == FTPOK) {\n      ppcVar10 = (char **)0x31;\n      if (*respline == '5') {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\n      }\n      else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_000afd08)(ppcVar3);\n    uVar6 = WRITEFAILED;\n  }" { (expression_statement "(*(code *)PTR_free_000afd08)(ppcVar3);" (call_expression "(*(code *)PTR_free_000afd08)(ppcVar3)" (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 "(ppcVar3)" ( identifier ))) ;) (expression_statement "uVar6 = WRITEFAILED;" (assignment_expression "uVar6 = WRITEFAILED" identifier = identifier) ;) }) (else_clause "else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar10 = &respline;\n    uVar6 = ftp_response(csock,ppcVar10);\n    if (uVar6 == FTPOK) {\n      ppcVar10 = (char **)0x31;\n      if (*respline == '5') {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\n      }\n      else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }\n    }\n  }" else (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    ppcVar10 = &respline;\n    uVar6 = ftp_response(csock,ppcVar10);\n    if (uVar6 == FTPOK) {\n      ppcVar10 = (char **)0x31;\n      if (*respline == '5') {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\n      }\n      else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\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 "ppcVar10 = &respline;" (assignment_expression "ppcVar10 = &respline" identifier = (pointer_expression "&respline" & identifier)) ;) (expression_statement "uVar6 = ftp_response(csock,ppcVar10);" (assignment_expression "uVar6 = ftp_response(csock,ppcVar10)" identifier = (call_expression "ftp_response(csock,ppcVar10)" identifier (argument_list "(csock,ppcVar10)" ( identifier , identifier )))) ;) (if_statement "if (uVar6 == FTPOK) {\n      ppcVar10 = (char **)0x31;\n      if (*respline == '5') {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\n      }\n      else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }\n    }" if (parenthesized_expression "(uVar6 == FTPOK)" ( (binary_expression "uVar6 == FTPOK" identifier == identifier) )) (compound_statement "{\n      ppcVar10 = (char **)0x31;\n      if (*respline == '5') {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\n      }\n      else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }\n    }" { (expression_statement "ppcVar10 = (char **)0x31;" (assignment_expression "ppcVar10 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*respline == '5') {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\n      }\n      else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }" if (parenthesized_expression "(*respline == '5')" ( (binary_expression "*respline == '5'" (pointer_expression "*respline" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPNSFOD;\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 "uVar6 = FTPNSFOD;" (assignment_expression "uVar6 = FTPNSFOD" identifier = identifier) ;) }) (else_clause "else if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }" else (if_statement "if (*respline == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }" if (parenthesized_expression "(*respline == '1')" ( (binary_expression "*respline == '1'" (pointer_expression "*respline" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\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 "()" ( ))) ;) }) (else_clause "else {\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\n      }" else (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\n        uVar6 = FTPRERR;\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 "uVar6 = FTPRERR;" (assignment_expression "uVar6 = FTPRERR" identifier = identifier) ;) }))))) })) }))) (if_statement "if (local_14 == *(int *)puVar2) {\n    return uVar6;\n  }" if (parenthesized_expression "(local_14 == *(int *)puVar2)" ( (binary_expression "local_14 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) })) (expression_statement "iVar5 = local_14;" (assignment_expression "iVar5 = local_14" identifier = identifier) ;) (expression_statement "puVar16 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar16 = 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_90 = puVar16 + 0x8c004;" (assignment_expression "puStack_90 = puVar16 + 0x8c004" identifier = (binary_expression "puVar16 + 0x8c004" identifier + number_literal)) ;) (expression_statement "puStack_80 = *(undefined4 **)(puVar16 + 0x84810);" (assignment_expression "puStack_80 = *(undefined4 **)(puVar16 + 0x84810)" identifier = (pointer_expression "*(undefined4 **)(puVar16 + 0x84810)" * (cast_expression "(undefined4 **)(puVar16 + 0x84810)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x84810)" ( (binary_expression "puVar16 + 0x84810" identifier + number_literal) ))))) ;) (expression_statement "local_30 = (byte *)((ulonglong)uVar19 >> 0x20);" (assignment_expression "local_30 = (byte *)((ulonglong)uVar19 >> 0x20)" identifier = (cast_expression "(byte *)((ulonglong)uVar19 >> 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar19 >> 0x20)" ( (binary_expression "(ulonglong)uVar19 >> 0x20" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puStack_6c = puVar2;" (assignment_expression "puStack_6c = puVar2" identifier = identifier) ;) (expression_statement "pbStack_7c = local_30;" (assignment_expression "pbStack_7c = local_30" identifier = identifier) ;) (expression_statement "pcStack_74 = (char *)*puStack_80;" (assignment_expression "pcStack_74 = (char *)*puStack_80" identifier = (cast_expression "(char *)*puStack_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_80" * identifier))) ;) (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" * identifier) = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "ppcStack_70 = ppcVar3;" (assignment_expression "ppcStack_70 = ppcVar3" identifier = identifier) ;) (expression_statement "iStack_68 = csock;" (assignment_expression "iStack_68 = csock" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b0);\n  }\n  else if (*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b) == '\0') {\n    iVar11 = 1;\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar11 = 1;\n    debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b0);\n  }" { (expression_statement "pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b0);" (assignment_expression "pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b0)" identifier = (cast_expression "(char *)(*(int *)(puVar16 + 0x84040) + -0x15b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar16 + 0x84040) + -0x15b0)" ( (binary_expression "*(int *)(puVar16 + 0x84040) + -0x15b0" (pointer_expression "*(int *)(puVar16 + 0x84040)" * (cast_expression "(int *)(puVar16 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x84040)" ( (binary_expression "puVar16 + 0x84040" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else if (*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b) == '\0') {\n    iVar11 = 1;\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar11 = 1;\n    debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  }" else (if_statement "if (*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b) == '\0') {\n    iVar11 = 1;\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8);\n  }\n  else {\n    iVar11 = 1;\n    debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b) == '\0')" ( (binary_expression "*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b)" * (cast_expression "(char *)(*(int *)(puVar16 + 0x8405c) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar16 + 0x8405c) + 0x16b)" ( (binary_expression "*(int *)(puVar16 + 0x8405c) + 0x16b" (pointer_expression "*(int *)(puVar16 + 0x8405c)" * (cast_expression "(int *)(puVar16 + 0x8405c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x8405c)" ( (binary_expression "puVar16 + 0x8405c" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar11 = 1;\n    pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8);\n  }" { (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (expression_statement "pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8);" (assignment_expression "pcVar9 = (char *)(*(int *)(puVar16 + 0x84040) + -0x15b8)" identifier = (cast_expression "(char *)(*(int *)(puVar16 + 0x84040) + -0x15b8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar16 + 0x84040) + -0x15b8)" ( (binary_expression "*(int *)(puVar16 + 0x84040) + -0x15b8" (pointer_expression "*(int *)(puVar16 + 0x84040)" * (cast_expression "(int *)(puVar16 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x84040)" ( (binary_expression "puVar16 + 0x84040" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n    iVar11 = 1;\n    debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  }" else (compound_statement "{\n    iVar11 = 1;\n    debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));\n    pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);\n  }" { (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (expression_statement "debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8));" (call_expression "debug_logprintf((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8))" identifier (argument_list "((char *)(*(int *)(puVar16 + 0x84040) + -0x15a8))" ( (cast_expression "(char *)(*(int *)(puVar16 + 0x84040) + -0x15a8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar16 + 0x84040) + -0x15a8)" ( (binary_expression "*(int *)(puVar16 + 0x84040) + -0x15a8" (pointer_expression "*(int *)(puVar16 + 0x84040)" * (cast_expression "(int *)(puVar16 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x84040)" ( (binary_expression "puVar16 + 0x84040" identifier + number_literal) )))) + number_literal) ))) ))) ;) (expression_statement "pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);" (assignment_expression "pcVar9 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8)" identifier = (cast_expression "(char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_90 + -0x7fc4) + -0x15b8)" ( (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" * (cast_expression "(int *)(puStack_90 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc4)" ( (binary_expression "puStack_90 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) }))))) (expression_statement "iVar4 = *(int *)(puStack_90 + -0x7c70);" (assignment_expression "iVar4 = *(int *)(puStack_90 + -0x7c70)" identifier = (pointer_expression "*(int *)(puStack_90 + -0x7c70)" * (cast_expression "(int *)(puStack_90 + -0x7c70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7c70)" ( (binary_expression "puStack_90 + -0x7c70" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);" (assignment_expression "uVar19 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(puStack_90 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc8)" * (cast_expression "(int *)(puStack_90 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc8)" ( (binary_expression "puStack_90 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar15 = *(undefined4 *)(puStack_90 + -0x7d38);" (assignment_expression "uVar15 = *(undefined4 *)(puStack_90 + -0x7d38)" identifier = (pointer_expression "*(undefined4 *)(puStack_90 + -0x7d38)" * (cast_expression "(undefined4 *)(puStack_90 + -0x7d38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7d38)" ( (binary_expression "puStack_90 + -0x7d38" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8);" (assignment_expression "pcVar14 = (char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8)" identifier = (cast_expression "(char *)(*(int *)(puStack_90 + -0x7fc4) + -0x15b8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_90 + -0x7fc4) + -0x15b8)" ( (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" * (cast_expression "(int *)(puStack_90 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc4)" ( (binary_expression "puStack_90 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10);\n      bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar3 = ppcVar7;\n      uStack_98 = uVar19;\n      iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        uVar6 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar11 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar3 = &pcStack_78;\n      uVar6 = ftp_response(iVar5,&pcStack_78);\n      pcVar9 = pcVar14;\n      if (uVar6 != FTPOK) break;\n      ppcVar3 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar11 = 0;\n        uVar6 = FTPNSFOD;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }\n      uStack_84 = uVar6;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      uVar6 = uStack_84;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\n      }\n      break;\n    }\n    iVar11 = 1;\n  } while (ppcVar7 == (char **)0x1);" do (compound_statement "{\n    while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10);\n      bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar3 = ppcVar7;\n      uStack_98 = uVar19;\n      iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        uVar6 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar11 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar3 = &pcStack_78;\n      uVar6 = ftp_response(iVar5,&pcStack_78);\n      pcVar9 = pcVar14;\n      if (uVar6 != FTPOK) break;\n      ppcVar3 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar11 = 0;\n        uVar6 = FTPNSFOD;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }\n      uStack_84 = uVar6;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      uVar6 = uStack_84;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 1, bVar1)) goto LAB_0002b57c;\n    }\n    if (in_a3 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\n      }\n      break;\n    }\n    iVar11 = 1;\n  }" { (while_statement "while( true ) {\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10);\n      bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar3 = ppcVar7;\n      uStack_98 = uVar19;\n      iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        uVar6 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar11 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar3 = &pcStack_78;\n      uVar6 = ftp_response(iVar5,&pcStack_78);\n      pcVar9 = pcVar14;\n      if (uVar6 != FTPOK) break;\n      ppcVar3 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar11 = 0;\n        uVar6 = FTPNSFOD;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }\n      uStack_84 = uVar6;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      uVar6 = uStack_84;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 1, bVar1)) goto LAB_0002b57c;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10);\n      bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar3 = ppcVar7;\n      uStack_98 = uVar19;\n      iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13);\n      if (iVar8 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        uVar6 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar11 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar3 = &pcStack_78;\n      uVar6 = ftp_response(iVar5,&pcStack_78);\n      pcVar9 = pcVar14;\n      if (uVar6 != FTPOK) break;\n      ppcVar3 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar11 = 0;\n        uVar6 = FTPNSFOD;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }\n      uStack_84 = uVar6;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      uVar6 = uStack_84;\n      if (in_a3 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 1, bVar1)) goto LAB_0002b57c;\n    }" { (expression_statement "ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10);" (assignment_expression "ppcVar7 = (char **)ftp_request(pcVar9,(char *)ppcVar10)" identifier = (cast_expression "(char **)ftp_request(pcVar9,(char *)ppcVar10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request(pcVar9,(char *)ppcVar10)" identifier (argument_list "(pcVar9,(char *)ppcVar10)" ( identifier , (cast_expression "(char *)ppcVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);" (assignment_expression "bufsize = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" identifier = (cast_expression "(undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(puStack_90 + -0x77c8))" ( (pointer_expression "**(code **)(puStack_90 + -0x77c8)" * (pointer_expression "*(code **)(puStack_90 + -0x77c8)" * (cast_expression "(code **)(puStack_90 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x77c8)" ( (binary_expression "puStack_90 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))))) ;) (expression_statement "ppcVar3 = ppcVar7;" (assignment_expression "ppcVar3 = ppcVar7" identifier = identifier) ;) (expression_statement "uStack_98 = uVar19;" (assignment_expression "uStack_98 = uVar19" identifier = identifier) ;) (expression_statement "iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13);" (assignment_expression "iVar8 = fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13)" identifier = (call_expression "fd_write(iVar5,(char *)ppcVar7,(int)bufsize,in_f12_13)" identifier (argument_list "(iVar5,(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 **)(puStack_90 + -0x7728))(ppcVar7);\n        uVar6 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        uVar6 = WRITEFAILED;\n        goto LAB_0002b57c;\n      }" { (expression_statement "(**(code **)(puStack_90 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(puStack_90 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" ( (pointer_expression "**(code **)(puStack_90 + -0x7728)" * (pointer_expression "*(code **)(puStack_90 + -0x7728)" * (cast_expression "(code **)(puStack_90 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x7728)" ( (binary_expression "puStack_90 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))) ;) (expression_statement "uVar6 = WRITEFAILED;" (assignment_expression "uVar6 = WRITEFAILED" identifier = identifier) ;) (goto_statement "goto LAB_0002b57c;" goto statement_identifier ;) })) (expression_statement "ppcVar7 = (char **)(iVar11 + 1);" (assignment_expression "ppcVar7 = (char **)(iVar11 + 1)" identifier = (cast_expression "(char **)(iVar11 + 1)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 1)" ( (binary_expression "iVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_90 + -0x7728))();" (call_expression "(**(code **)(puStack_90 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" ( (pointer_expression "**(code **)(puStack_90 + -0x7728)" * (pointer_expression "*(code **)(puStack_90 + -0x7728)" * (cast_expression "(code **)(puStack_90 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x7728)" ( (binary_expression "puStack_90 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar3 = &pcStack_78;" (assignment_expression "ppcVar3 = &pcStack_78" identifier = (pointer_expression "&pcStack_78" & identifier)) ;) (expression_statement "uVar6 = ftp_response(iVar5,&pcStack_78);" (assignment_expression "uVar6 = ftp_response(iVar5,&pcStack_78)" identifier = (call_expression "ftp_response(iVar5,&pcStack_78)" identifier (argument_list "(iVar5,&pcStack_78)" ( identifier , (pointer_expression "&pcStack_78" & identifier) )))) ;) (expression_statement "pcVar9 = pcVar14;" (assignment_expression "pcVar9 = pcVar14" identifier = identifier) ;) (if_statement "if (uVar6 != FTPOK) break;" if (parenthesized_expression "(uVar6 != FTPOK)" ( (binary_expression "uVar6 != FTPOK" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "ppcVar3 = (char **)0x31;" (assignment_expression "ppcVar3 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*pcStack_78 == '5') {\n        iVar11 = 0;\n        uVar6 = FTPNSFOD;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }" if (parenthesized_expression "(*pcStack_78 == '5')" ( (binary_expression "*pcStack_78 == '5'" (pointer_expression "*pcStack_78" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar11 = 0;\n        uVar6 = FTPNSFOD;\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = FTPNSFOD;" (assignment_expression "uVar6 = FTPNSFOD" identifier = identifier) ;) }) (else_clause "else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }" else (if_statement "if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }\n      else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }" if (parenthesized_expression "(*pcStack_78 == '1')" ( (binary_expression "*pcStack_78 == '1'" (pointer_expression "*pcStack_78" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        *pbStack_7c = (byte)iVar11 ^ 1;\n        iVar11 = 1;\n      }" { (expression_statement "*pbStack_7c = (byte)iVar11 ^ 1;" (assignment_expression "*pbStack_7c = (byte)iVar11 ^ 1" (pointer_expression "*pbStack_7c" * identifier) = (binary_expression "(byte)iVar11 ^ 1" (cast_expression "(byte)iVar11" ( (type_descriptor "byte" type_identifier) ) identifier) ^ number_literal)) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }" else (compound_statement "{\n        iVar11 = 0;\n        uVar6 = FTPRERR;\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = FTPRERR;" (assignment_expression "uVar6 = FTPRERR" identifier = identifier) ;) }))))) (expression_statement "uStack_84 = uVar6;" (assignment_expression "uStack_84 = uVar6" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_90 + -0x7728))();" (call_expression "(**(code **)(puStack_90 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" ( (pointer_expression "**(code **)(puStack_90 + -0x7728)" * (pointer_expression "*(code **)(puStack_90 + -0x7728)" * (cast_expression "(code **)(puStack_90 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x7728)" ( (binary_expression "puStack_90 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_78 = (char *)0x0;" (assignment_expression "pcStack_78 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar6 = uStack_84;" (assignment_expression "uVar6 = uStack_84" 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 = iVar11 != 0, iVar11 = 1, bVar1)) goto LAB_0002b57c;" if (parenthesized_expression "((ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 1, bVar1))" ( (binary_expression "(ppcVar7 != (char **)0x1) || (bVar1 = iVar11 != 0, iVar11 = 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 = iVar11 != 0, iVar11 = 1, bVar1)" ( (comma_expression "bVar1 = iVar11 != 0, iVar11 = 1, bVar1" (assignment_expression "bVar1 = iVar11 != 0" identifier = (binary_expression "iVar11 != 0" identifier != number_literal)) , (comma_expression "iVar11 = 1, bVar1" (assignment_expression "iVar11 = 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 *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\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 *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\n      }\n      break;\n    }" { (labeled_statement "LAB_0002b570:\n      if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\n      }" statement_identifier : (if_statement "if ((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))\n      {\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\n      }" if (parenthesized_expression "((ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))" ( (binary_expression "(ppcVar7 == (char **)0x1) && (*(char *)(*(int *)(puStack_90 + -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 *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')" ( (binary_expression "*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'" (pointer_expression "*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" * (cast_expression "(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" ( (binary_expression "*(int *)(puStack_90 + -0x7fa8) + 0x16b" (pointer_expression "*(int *)(puStack_90 + -0x7fa8)" * (cast_expression "(int *)(puStack_90 + -0x7fa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fa8)" ( (binary_expression "puStack_90 + -0x7fa8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        uStack_84 = uVar6;\n        debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));\n        uVar6 = uStack_84;\n      }" { (expression_statement "uStack_84 = uVar6;" (assignment_expression "uStack_84 = uVar6" identifier = identifier) ;) (expression_statement "debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590));" (call_expression "debug_logprintf((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590))" identifier (argument_list "((char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590))" ( (cast_expression "(char *)(*(int *)(puStack_90 + -0x7fc4) + -0x1590)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_90 + -0x7fc4) + -0x1590)" ( (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x1590" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" * (cast_expression "(int *)(puStack_90 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc4)" ( (binary_expression "puStack_90 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))) ))) ;) (expression_statement "uVar6 = uStack_84;" (assignment_expression "uVar6 = uStack_84" identifier = identifier) ;) }))) (break_statement "break;" break ;) })) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 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_74 == (char *)*puStack_80) {\n    return uVar6;\n  }" statement_identifier : (if_statement "if (pcStack_74 == (char *)*puStack_80) {\n    return uVar6;\n  }" if (parenthesized_expression "(pcStack_74 == (char *)*puStack_80)" ( (binary_expression "pcStack_74 == (char *)*puStack_80" identifier == (cast_expression "(char *)*puStack_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_80" * identifier))) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) }))) (expression_statement "pcVar17 = *(code **)(puStack_90 + -0x785c);" (assignment_expression "pcVar17 = *(code **)(puStack_90 + -0x785c)" identifier = (pointer_expression "*(code **)(puStack_90 + -0x785c)" * (cast_expression "(code **)(puStack_90 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x785c)" ( (binary_expression "puStack_90 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar18 = ftp_syst;" (assignment_expression "pcVar18 = ftp_syst" identifier = identifier) ;) (expression_statement "pcVar9 = pcStack_74;" (assignment_expression "pcVar9 = pcStack_74" identifier = identifier) ;) (expression_statement "(*pcVar17)();" (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_d8 = pcVar17 + 0x8bd8c;" (assignment_expression "pcStack_d8 = pcVar17 + 0x8bd8c" identifier = (binary_expression "pcVar17 + 0x8bd8c" identifier + number_literal)) ;) (expression_statement "piVar12 = *(int **)(pcVar17 + 0x84598);" (assignment_expression "piVar12 = *(int **)(pcVar17 + 0x84598)" identifier = (pointer_expression "*(int **)(pcVar17 + 0x84598)" * (cast_expression "(int **)(pcVar17 + 0x84598)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x84598)" ( (binary_expression "pcVar17 + 0x84598" identifier + number_literal) ))))) ;) (expression_statement "iStack_cc = *piVar12;" (assignment_expression "iStack_cc = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "ppcStack_c8 = ppcVar7;" (assignment_expression "ppcStack_c8 = ppcVar7" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar11;" (assignment_expression "iStack_c4 = iVar11" identifier = identifier) ;) (expression_statement "iStack_c0 = iVar5;" (assignment_expression "iStack_c0 = iVar5" identifier = identifier) ;) (expression_statement "iStack_bc = iVar4 + -0x6ee0;" (assignment_expression "iStack_bc = iVar4 + -0x6ee0" identifier = (binary_expression "iVar4 + -0x6ee0" identifier + number_literal)) ;) (expression_statement "pcStack_b8 = pcVar14;" (assignment_expression "pcStack_b8 = pcVar14" identifier = identifier) ;) (expression_statement "ppcStack_b4 = ppcVar10;" (assignment_expression "ppcStack_b4 = ppcVar10" identifier = identifier) ;) (expression_statement "uStack_b0 = uVar15;" (assignment_expression "uStack_b0 = uVar15" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar18;" (assignment_expression "pcStack_ac = pcVar18" identifier = identifier) ;) (expression_statement "ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c),(char *)0x0);" (assignment_expression "ppcVar7 = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c),(char *)0x0)" identifier = (cast_expression "(char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c),(char *)0x0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request((char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c),(char *)0x0)" identifier (argument_list "((char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c),(char *)0x0)" ( (cast_expression "(char *)(*(int *)(pcVar17 + 0x83dc8) + -0x157c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar17 + 0x83dc8) + -0x157c)" ( (binary_expression "*(int *)(pcVar17 + 0x83dc8) + -0x157c" (pointer_expression "*(int *)(pcVar17 + 0x83dc8)" * (cast_expression "(int *)(pcVar17 + 0x83dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x83dc8)" ( (binary_expression "pcVar17 + 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_d8 + -0x77c8))(ppcVar7);" (assignment_expression "iVar4 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_d8 + -0x77c8)" * (cast_expression "(code **)(pcStack_d8 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x77c8)" ( (binary_expression "pcStack_d8 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier )))) ;) (expression_statement "uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc8)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc8)" ( (binary_expression "pcStack_d8 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar10 = ppcVar7;" (assignment_expression "ppcVar10 = 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    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar10 = &pcStack_d0;\n    uVar6 = ftp_response((int)pcVar9,ppcVar10);\n    pcVar14 = pcStack_d0;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_d0 == '5') {\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }" { (expression_statement "uVar6 = WRITEFAILED;" (assignment_expression "uVar6 = WRITEFAILED" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar10 = &pcStack_d0;\n    uVar6 = ftp_response((int)pcVar9,ppcVar10);\n    pcVar14 = pcStack_d0;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_d0 == '5') {\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar10 = &pcStack_d0;\n    uVar6 = ftp_response((int)pcVar9,ppcVar10);\n    pcVar14 = pcStack_d0;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_d0 == '5') {\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7728))();" (call_expression "(**(code **)(pcStack_d8 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar10 = &pcStack_d0;" (assignment_expression "ppcVar10 = &pcStack_d0" identifier = (pointer_expression "&pcStack_d0" & identifier)) ;) (expression_statement "uVar6 = ftp_response((int)pcVar9,ppcVar10);" (assignment_expression "uVar6 = ftp_response((int)pcVar9,ppcVar10)" identifier = (call_expression "ftp_response((int)pcVar9,ppcVar10)" identifier (argument_list "((int)pcVar9,ppcVar10)" ( (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "pcVar14 = pcStack_d0;" (assignment_expression "pcVar14 = pcStack_d0" identifier = identifier) ;) (if_statement "if (uVar6 == FTPOK) {\n      if (*pcStack_d0 == '5') {\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }" if (parenthesized_expression "(uVar6 == FTPOK)" ( (binary_expression "uVar6 == FTPOK" identifier == identifier) )) (compound_statement "{\n      if (*pcStack_d0 == '5') {\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }" { (if_statement "if (*pcStack_d0 == '5') {\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }\n      else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" if (parenthesized_expression "(*pcStack_d0 == '5')" ( (binary_expression "*pcStack_d0 == '5'" (pointer_expression "*pcStack_d0" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        uVar6 = FTPSRVERR;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar9 = pcStack_d0;\n      }" { (expression_statement "uVar6 = FTPSRVERR;" (assignment_expression "uVar6 = FTPSRVERR" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_d0)" ( identifier ))) ;) (expression_statement "pcVar9 = pcStack_d0;" (assignment_expression "pcVar9 = pcStack_d0" identifier = identifier) ;) }) (else_clause "else {\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" else (compound_statement "{\n        iVar4 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);\n        ppcVar10 = (char **)(iVar4 + 0x4a48);\n        pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *bufsize = 2;\n        if (pcVar9 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" { (expression_statement "iVar4 = *(int *)(pcStack_d8 + -0x7fc8);" (assignment_expression "iVar4 = *(int *)(pcStack_d8 + -0x7fc8)" identifier = (pointer_expression "*(int *)(pcStack_d8 + -0x7fc8)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc8)" ( (binary_expression "pcStack_d8 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);" (assignment_expression "uVar15 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x794c))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x794c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x794c)" * (cast_expression "(code **)(pcStack_d8 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x794c)" ( (binary_expression "pcStack_d8 + -0x794c" identifier + number_literal) ))))) )) (argument_list "(pcStack_d0)" ( identifier )))) ;) (expression_statement "(**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48);" (call_expression "(**(code **)(pcStack_d8 + -0x7888))(pcVar14,iVar4 + 0x4a48)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7888)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7888)" * (cast_expression "(code **)(pcStack_d8 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7888)" ( (binary_expression "pcStack_d8 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcVar14,iVar4 + 0x4a48)" ( identifier , (binary_expression "iVar4 + 0x4a48" identifier + number_literal) ))) ;) (expression_statement "ppcVar10 = (char **)(iVar4 + 0x4a48);" (assignment_expression "ppcVar10 = (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_d8 + -0x7888))(0);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0)" identifier = (cast_expression "(char *)(**(code **)(pcStack_d8 + -0x7888))(0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_d8 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7888)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7888)" * (cast_expression "(code **)(pcStack_d8 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7888)" ( (binary_expression "pcStack_d8 + -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          *ppcVar3 = (char *)0x5;\n        }\n        else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (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          *ppcVar3 = (char *)0x5;\n        }" { (labeled_statement "LAB_0002b8d8:\n          *ppcVar3 = (char *)0x5;" statement_identifier : (expression_statement "*ppcVar3 = (char *)0x5;" (assignment_expression "*ppcVar3 = (char *)0x5" (pointer_expression "*ppcVar3" * identifier) = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }" else (compound_statement "{\n          ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n          if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }\n        }" { (expression_statement "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);" (assignment_expression "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1574" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n            *ppcVar3 = (char *)0x1;\n          }\n          else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            *ppcVar3 = (char *)0x1;\n          }" { (expression_statement "*ppcVar3 = (char *)0x1;" (assignment_expression "*ppcVar3 = (char *)0x1" (pointer_expression "*ppcVar3" * identifier) = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }" else (compound_statement "{\n            iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }\n          }" { (expression_statement "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);" (assignment_expression "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" ( identifier , (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1570" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }\n            else {\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar4 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar17 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar3 = (char *)0x0;\n              ppcVar10 = (char **)(iVar4 + -0x1568);\n              iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11);\n              if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }\n            }" { (expression_statement "iVar4 = *(int *)(pcStack_d8 + -0x7fc4);" (assignment_expression "iVar4 = *(int *)(pcStack_d8 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) ))))) ;) (expression_statement "pcVar17 = *(code **)(pcStack_d8 + -0x7db0);" (assignment_expression "pcVar17 = *(code **)(pcStack_d8 + -0x7db0)" identifier = (pointer_expression "*(code **)(pcStack_d8 + -0x7db0)" * (cast_expression "(code **)(pcStack_d8 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7db0)" ( (binary_expression "pcStack_d8 + -0x7db0" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar3 = (char *)0x0;" (assignment_expression "*ppcVar3 = (char *)0x0" (pointer_expression "*ppcVar3" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar10 = (char **)(iVar4 + -0x1568);" (assignment_expression "ppcVar10 = (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 = (*pcVar17)(uVar15,ppcVar10,0x11);" (assignment_expression "iVar4 = (*pcVar17)(uVar15,ppcVar10,0x11)" identifier = (call_expression "(*pcVar17)(uVar15,ppcVar10,0x11)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar15,ppcVar10,0x11)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n                *bufsize = 0;\n              }\n              else {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,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                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }" else (compound_statement "{\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);\n                if (iVar4 == 0) {\n                  *bufsize = 1;\n                }\n              }" { (expression_statement "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);" (assignment_expression "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1554" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29);" (assignment_expression "iVar4 = (**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7db0))(uVar15,ppcVar10,0x29)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7db0))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7db0)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7db0)" * (cast_expression "(code **)(pcStack_d8 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7db0)" ( (binary_expression "pcStack_d8 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(uVar15,ppcVar10,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              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }" else (compound_statement "{\n              ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n              if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar3 = (char *)0x2;\n            }" { (expression_statement "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);" (assignment_expression "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1528" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" { (expression_statement "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);" (assignment_expression "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x151c" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                  ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                  if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" { (expression_statement "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);" (assignment_expression "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1510" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                    *ppcVar3 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    *ppcVar3 = (char *)0x3;\n                  }" { (expression_statement "*ppcVar3 = (char *)0x3;" (assignment_expression "*ppcVar3 = (char *)0x3" (pointer_expression "*ppcVar3" * identifier) = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }" else (compound_statement "{\n                    ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);\n                    if (iVar4 != 0) goto LAB_0002b8d8;\n                    *ppcVar3 = (char *)0x4;\n                  }" { (expression_statement "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);" (assignment_expression "ppcVar10 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1508" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar9)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -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 "*ppcVar3 = (char *)0x4;" (assignment_expression "*ppcVar3 = (char *)0x4" (pointer_expression "*ppcVar3" * 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 "*ppcVar3 = (char *)0x2;" (assignment_expression "*ppcVar3 = (char *)0x2" (pointer_expression "*ppcVar3" * identifier) = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) }))) (labeled_statement "LAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar15);" statement_identifier : (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(uVar15);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(uVar15)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_d0)" ( identifier ))) ;) }))) })) }))) (if_statement "if (iStack_cc == *piVar12) {\n    return uVar6;\n  }" if (parenthesized_expression "(iStack_cc == *piVar12)" ( (binary_expression "iStack_cc == *piVar12" identifier == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) })) (expression_statement "pcVar17 = *(code **)(pcStack_d8 + -0x785c);" (assignment_expression "pcVar17 = *(code **)(pcStack_d8 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_d8 + -0x785c)" * (cast_expression "(code **)(pcStack_d8 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x785c)" ( (binary_expression "pcStack_d8 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar18 = ftp_pwd;" (assignment_expression "pcVar18 = ftp_pwd" identifier = identifier) ;) (expression_statement "iVar4 = iStack_cc;" (assignment_expression "iVar4 = iStack_cc" identifier = identifier) ;) (expression_statement "(*pcVar17)();" (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_118 = pcVar17 + 0x8ba8c;" (assignment_expression "pcStack_118 = pcVar17 + 0x8ba8c" identifier = (binary_expression "pcVar17 + 0x8ba8c" identifier + number_literal)) ;) (expression_statement "piVar13 = *(int **)(pcVar17 + 0x84298);" (assignment_expression "piVar13 = *(int **)(pcVar17 + 0x84298)" identifier = (pointer_expression "*(int **)(pcVar17 + 0x84298)" * (cast_expression "(int **)(pcVar17 + 0x84298)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x84298)" ( (binary_expression "pcVar17 + 0x84298" identifier + number_literal) ))))) ;) (expression_statement "iStack_10c = *piVar13;" (assignment_expression "iStack_10c = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "uStack_104 = uVar6;" (assignment_expression "uStack_104 = uVar6" identifier = identifier) ;) (expression_statement "piStack_100 = piVar12;" (assignment_expression "piStack_100 = piVar12" identifier = identifier) ;) (expression_statement "pcStack_fc = pcVar9;" (assignment_expression "pcStack_fc = pcVar9" identifier = identifier) ;) (expression_statement "puStack_f8 = bufsize;" (assignment_expression "puStack_f8 = bufsize" identifier = identifier) ;) (expression_statement "pcStack_f4 = pcVar18;" (assignment_expression "pcStack_f4 = pcVar18" identifier = identifier) ;) (expression_statement "buf = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500),(char *)0x0);" (assignment_expression "buf = (char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500),(char *)0x0)" identifier = (cast_expression "(char **)ftp_request((char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500),(char *)0x0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "ftp_request((char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500),(char *)0x0)" identifier (argument_list "((char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500),(char *)0x0)" ( (cast_expression "(char *)(*(int *)(pcVar17 + 0x83ac8) + -0x1500)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar17 + 0x83ac8) + -0x1500)" ( (binary_expression "*(int *)(pcVar17 + 0x83ac8) + -0x1500" (pointer_expression "*(int *)(pcVar17 + 0x83ac8)" * (cast_expression "(int *)(pcVar17 + 0x83ac8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x83ac8)" ( (binary_expression "pcVar17 + 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_118 + -0x77c8))(buf);" (assignment_expression "bufsize_00 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(buf)" identifier = (cast_expression "(undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(buf)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_118 + -0x77c8))(buf)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_118 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_118 + -0x77c8)" * (cast_expression "(code **)(pcStack_118 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x77c8)" ( (binary_expression "pcStack_118 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(buf)" ( identifier ))))) ;) (expression_statement "uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_118 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_118 + -0x7fc8)" * (cast_expression "(int *)(pcStack_118 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_118 + -0x7fc8)" ( (binary_expression "pcStack_118 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar7 = buf;" (assignment_expression "ppcVar7 = buf" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(iVar4,(char *)buf,(int)bufsize_00,in_f12_13);" (assignment_expression "iVar5 = 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 (iVar5 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_118 + -0x7728))(buf);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    ppcVar7 = &pcStack_110;\n    uVar6 = ftp_response(iVar4,ppcVar7);\n    if (uVar6 == FTPOK) {\n      iVar4 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar6 = FTPSRVERR;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcStack_118 + -0x7728))(buf);\n  }" { (expression_statement "uVar6 = WRITEFAILED;" (assignment_expression "uVar6 = WRITEFAILED" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_118 + -0x7728))(buf);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(buf)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(buf)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    ppcVar7 = &pcStack_110;\n    uVar6 = ftp_response(iVar4,ppcVar7);\n    if (uVar6 == FTPOK) {\n      iVar4 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar6 = FTPSRVERR;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_118 + -0x7728))();\n    ppcVar7 = &pcStack_110;\n    uVar6 = ftp_response(iVar4,ppcVar7);\n    if (uVar6 == FTPOK) {\n      iVar4 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar6 = FTPSRVERR;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" { (expression_statement "(**(code **)(pcStack_118 + -0x7728))();" (call_expression "(**(code **)(pcStack_118 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar7 = &pcStack_110;" (assignment_expression "ppcVar7 = &pcStack_110" identifier = (pointer_expression "&pcStack_110" & identifier)) ;) (expression_statement "uVar6 = ftp_response(iVar4,ppcVar7);" (assignment_expression "uVar6 = ftp_response(iVar4,ppcVar7)" identifier = (call_expression "ftp_response(iVar4,ppcVar7)" identifier (argument_list "(iVar4,ppcVar7)" ( identifier , identifier )))) ;) (if_statement "if (uVar6 == FTPOK) {\n      iVar4 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar6 = FTPSRVERR;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }" if (parenthesized_expression "(uVar6 == FTPOK)" ( (binary_expression "uVar6 == FTPOK" identifier == identifier) )) (compound_statement "{\n      iVar4 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      uVar6 = FTPSRVERR;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }" { (expression_statement "iVar4 = *(int *)(pcStack_118 + -0x7fc4);" (assignment_expression "iVar4 = *(int *)(pcStack_118 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_118 + -0x7fc4)" * (cast_expression "(int *)(pcStack_118 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_118 + -0x7fc4)" ( (binary_expression "pcStack_118 + -0x7fc4" identifier + number_literal) ))))) ;) (if_statement "if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }" if (parenthesized_expression "(*pcStack_110 != '5')" ( (binary_expression "*pcStack_110 != '5'" (pointer_expression "*pcStack_110" * identifier) != (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);\n        ppcVar7 = (char **)(iVar4 + -0x3d0);\n        iVar4 = (**(code **)(pcStack_118 + -0x7888))(0);\n        if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }" { (expression_statement "(**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0);" (call_expression "(**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar4 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7888)" * (pointer_expression "*(code **)(pcStack_118 + -0x7888)" * (cast_expression "(code **)(pcStack_118 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7888)" ( (binary_expression "pcStack_118 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcStack_110,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_118 + -0x7888))(0);" (assignment_expression "iVar4 = (**(code **)(pcStack_118 + -0x7888))(0)" identifier = (call_expression "(**(code **)(pcStack_118 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7888)" * (pointer_expression "*(code **)(pcStack_118 + -0x7888)" * (cast_expression "(code **)(pcStack_118 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7888)" ( (binary_expression "pcStack_118 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar10);\n          pcVar17 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar10 = (char *)0x0;\n          pcVar9 = (char *)(*pcVar17)(iVar4);\n          pcVar17 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar10 = pcVar9;\n          (*pcVar17)(pcStack_110);\n          goto LAB_0002bae8;\n        }" { (expression_statement "(**(code **)(pcStack_118 + -0x7728))(*ppcVar10);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(*ppcVar10)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(*ppcVar10)" ( (pointer_expression "*ppcVar10" * identifier) ))) ;) (expression_statement "pcVar17 = *(code **)(pcStack_118 + -0x7fa4);" (assignment_expression "pcVar17 = *(code **)(pcStack_118 + -0x7fa4)" identifier = (pointer_expression "*(code **)(pcStack_118 + -0x7fa4)" * (cast_expression "(code **)(pcStack_118 + -0x7fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7fa4)" ( (binary_expression "pcStack_118 + -0x7fa4" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar10 = (char *)0x0;" (assignment_expression "*ppcVar10 = (char *)0x0" (pointer_expression "*ppcVar10" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = (char *)(*pcVar17)(iVar4);" (assignment_expression "pcVar9 = (char *)(*pcVar17)(iVar4)" identifier = (cast_expression "(char *)(*pcVar17)(iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar17)(iVar4)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(iVar4)" ( identifier ))))) ;) (expression_statement "pcVar17 = *(code **)(pcStack_118 + -0x7728);" (assignment_expression "pcVar17 = *(code **)(pcStack_118 + -0x7728)" identifier = (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar10 = pcVar9;" (assignment_expression "*ppcVar10 = pcVar9" (pointer_expression "*ppcVar10" * identifier) = identifier) ;) (expression_statement "(*pcVar17)(pcStack_110);" (call_expression "(*pcVar17)(pcStack_110)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(pcStack_110)" ( identifier ))) ;) (goto_statement "goto LAB_0002bae8;" goto statement_identifier ;) })) })) (expression_statement "uVar6 = FTPSRVERR;" (assignment_expression "uVar6 = FTPSRVERR" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_118 + -0x7728))(pcStack_110);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(pcStack_110)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_110)" ( identifier ))) ;) })) }))) (labeled_statement "LAB_0002bae8:\n  if (iStack_10c == *piVar13) {\n    return uVar6;\n  }" statement_identifier : (if_statement "if (iStack_10c == *piVar13) {\n    return uVar6;\n  }" if (parenthesized_expression "(iStack_10c == *piVar13)" ( (binary_expression "iStack_10c == *piVar13" identifier == (pointer_expression "*piVar13" * identifier)) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) }))) (expression_statement "pcVar17 = *(code **)(pcStack_118 + -0x785c);" (assignment_expression "pcVar17 = *(code **)(pcStack_118 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_118 + -0x785c)" * (cast_expression "(code **)(pcStack_118 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x785c)" ( (binary_expression "pcStack_118 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar18 = ftp_size;" (assignment_expression "pcVar18 = ftp_size" identifier = identifier) ;) (expression_statement "iVar5 = iStack_10c;" (assignment_expression "iVar5 = iStack_10c" identifier = identifier) ;) (expression_statement "(*pcVar17)();" (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar12 = *(int **)(pcVar17 + 0x840f4);" (assignment_expression "piVar12 = *(int **)(pcVar17 + 0x840f4)" identifier = (pointer_expression "*(int **)(pcVar17 + 0x840f4)" * (cast_expression "(int **)(pcVar17 + 0x840f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x840f4)" ( (binary_expression "pcVar17 + 0x840f4" identifier + number_literal) ))))) ;) (expression_statement "iStack_14c = *piVar12;" (assignment_expression "iStack_14c = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "uStack_148 = uVar6;" (assignment_expression "uStack_148 = uVar6" identifier = identifier) ;) (expression_statement "piStack_144 = piVar13;" (assignment_expression "piStack_144 = piVar13" identifier = identifier) ;) (expression_statement "iStack_140 = iVar4;" (assignment_expression "iStack_140 = iVar4" identifier = identifier) ;) (expression_statement "ppcStack_13c = ppcVar10;" (assignment_expression "ppcStack_13c = ppcVar10" identifier = identifier) ;) (expression_statement "ppcStack_138 = ppcVar3;" (assignment_expression "ppcStack_138 = ppcVar3" identifier = identifier) ;) (expression_statement "pcStack_134 = pcVar18;" (assignment_expression "pcStack_134 = pcVar18" identifier = identifier) ;) (expression_statement "pcVar9 = ftp_request((char *)(*(int *)(pcVar17 + 0x83924) + -0x14fc),(char *)ppcVar7);" (assignment_expression "pcVar9 = ftp_request((char *)(*(int *)(pcVar17 + 0x83924) + -0x14fc),(char *)ppcVar7)" identifier = (call_expression "ftp_request((char *)(*(int *)(pcVar17 + 0x83924) + -0x14fc),(char *)ppcVar7)" identifier (argument_list "((char *)(*(int *)(pcVar17 + 0x83924) + -0x14fc),(char *)ppcVar7)" ( (cast_expression "(char *)(*(int *)(pcVar17 + 0x83924) + -0x14fc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar17 + 0x83924) + -0x14fc)" ( (binary_expression "*(int *)(pcVar17 + 0x83924) + -0x14fc" (pointer_expression "*(int *)(pcVar17 + 0x83924)" * (cast_expression "(int *)(pcVar17 + 0x83924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 0x83924)" ( (binary_expression "pcVar17 + 0x83924" identifier + number_literal) )))) + number_literal) ))) , (cast_expression "(char *)ppcVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar4 = (**(code **)(pcVar17 + 0x84120))(pcVar9);" (assignment_expression "iVar4 = (**(code **)(pcVar17 + 0x84120))(pcVar9)" identifier = (call_expression "(**(code **)(pcVar17 + 0x84120))(pcVar9)" (parenthesized_expression "(**(code **)(pcVar17 + 0x84120))" ( (pointer_expression "**(code **)(pcVar17 + 0x84120)" * (pointer_expression "*(code **)(pcVar17 + 0x84120)" * (cast_expression "(code **)(pcVar17 + 0x84120)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x84120)" ( (binary_expression "pcVar17 + 0x84120" identifier + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "iVar4 = fd_write(iVar5,pcVar9,iVar4,in_f12_13);" (assignment_expression "iVar4 = fd_write(iVar5,pcVar9,iVar4,in_f12_13)" identifier = (call_expression "fd_write(iVar5,pcVar9,iVar4,in_f12_13)" identifier (argument_list "(iVar5,pcVar9,iVar4,in_f12_13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 < 0) {\n    uVar6 = WRITEFAILED;\n    (**(code **)(pcVar17 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }\n  else {\n    (**(code **)(pcVar17 + 0x841c0))();\n    uVar6 = ftp_response(iVar5,&pcStack_150);\n    pcVar9 = pcStack_150;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_150 == '5') {\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }\n      else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar18)(pcStack_150);\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    uVar6 = WRITEFAILED;\n    (**(code **)(pcVar17 + 0x841c0))(pcVar9);\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }" { (expression_statement "uVar6 = WRITEFAILED;" (assignment_expression "uVar6 = WRITEFAILED" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar17 + 0x841c0))(pcVar9);" (call_expression "(**(code **)(pcVar17 + 0x841c0))(pcVar9)" (parenthesized_expression "(**(code **)(pcVar17 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar17 + 0x841c0)" * (pointer_expression "*(code **)(pcVar17 + 0x841c0)" * (cast_expression "(code **)(pcVar17 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x841c0)" ( (binary_expression "pcVar17 + 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 **)(pcVar17 + 0x841c0))();\n    uVar6 = ftp_response(iVar5,&pcStack_150);\n    pcVar9 = pcStack_150;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_150 == '5') {\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }\n      else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar18)(pcStack_150);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcVar17 + 0x841c0))();\n    uVar6 = ftp_response(iVar5,&pcStack_150);\n    pcVar9 = pcStack_150;\n    if (uVar6 == FTPOK) {\n      if (*pcStack_150 == '5') {\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }\n      else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar18)(pcStack_150);\n    }\n    *(undefined4 *)((int)bufsize_00 + 4) = 0;\n    *(undefined4 *)bufsize_00 = 0;\n  }" { (expression_statement "(**(code **)(pcVar17 + 0x841c0))();" (call_expression "(**(code **)(pcVar17 + 0x841c0))()" (parenthesized_expression "(**(code **)(pcVar17 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar17 + 0x841c0)" * (pointer_expression "*(code **)(pcVar17 + 0x841c0)" * (cast_expression "(code **)(pcVar17 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x841c0)" ( (binary_expression "pcVar17 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = ftp_response(iVar5,&pcStack_150);" (assignment_expression "uVar6 = ftp_response(iVar5,&pcStack_150)" identifier = (call_expression "ftp_response(iVar5,&pcStack_150)" identifier (argument_list "(iVar5,&pcStack_150)" ( identifier , (pointer_expression "&pcStack_150" & identifier) )))) ;) (expression_statement "pcVar9 = pcStack_150;" (assignment_expression "pcVar9 = pcStack_150" identifier = identifier) ;) (if_statement "if (uVar6 == FTPOK) {\n      if (*pcStack_150 == '5') {\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }\n      else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar18)(pcStack_150);\n    }" if (parenthesized_expression "(uVar6 == FTPOK)" ( (binary_expression "uVar6 == FTPOK" identifier == identifier) )) (compound_statement "{\n      if (*pcStack_150 == '5') {\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }\n      else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar18)(pcStack_150);\n    }" { (if_statement "if (*pcStack_150 == '5') {\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }\n      else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" if (parenthesized_expression "(*pcStack_150 == '5')" ( (binary_expression "*pcStack_150 == '5'" (pointer_expression "*pcStack_150" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n      }" { (expression_statement "pcVar18 = *(code **)(pcVar17 + 0x841c0);" (assignment_expression "pcVar18 = *(code **)(pcVar17 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar17 + 0x841c0)" * (cast_expression "(code **)(pcVar17 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x841c0)" ( (binary_expression "pcVar17 + 0x841c0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" else (compound_statement "{\n        piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();\n        *piVar13 = 0;\n        uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);\n        iVar4 = *piVar13;\n        *bufsize_00 = uVar19;\n        pcVar18 = *(code **)(pcVar17 + 0x841c0);\n        if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" { (expression_statement "piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))();" (assignment_expression "piVar13 = (int *)(**(code **)(pcVar17 + 0x84348))()" identifier = (cast_expression "(int *)(**(code **)(pcVar17 + 0x84348))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar17 + 0x84348))()" (parenthesized_expression "(**(code **)(pcVar17 + 0x84348))" ( (pointer_expression "**(code **)(pcVar17 + 0x84348)" * (pointer_expression "*(code **)(pcVar17 + 0x84348)" * (cast_expression "(code **)(pcVar17 + 0x84348)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x84348)" ( (binary_expression "pcVar17 + 0x84348" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar13 = 0;" (assignment_expression "*piVar13 = 0" (pointer_expression "*piVar13" * identifier) = number_literal) ;) (expression_statement "uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10);" (assignment_expression "uVar19 = (**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10)" identifier = (call_expression "(**(code **)(pcVar17 + 0x841f4))(pcVar9 + 4,0,10)" (parenthesized_expression "(**(code **)(pcVar17 + 0x841f4))" ( (pointer_expression "**(code **)(pcVar17 + 0x841f4)" * (pointer_expression "*(code **)(pcVar17 + 0x841f4)" * (cast_expression "(code **)(pcVar17 + 0x841f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x841f4)" ( (binary_expression "pcVar17 + 0x841f4" identifier + number_literal) ))))) )) (argument_list "(pcVar9 + 4,0,10)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "iVar4 = *piVar13;" (assignment_expression "iVar4 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "*bufsize_00 = uVar19;" (assignment_expression "*bufsize_00 = uVar19" (pointer_expression "*bufsize_00" * identifier) = identifier) ;) (expression_statement "pcVar18 = *(code **)(pcVar17 + 0x841c0);" (assignment_expression "pcVar18 = *(code **)(pcVar17 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar17 + 0x841c0)" * (cast_expression "(code **)(pcVar17 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x841c0)" ( (binary_expression "pcVar17 + 0x841c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) {\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          (*pcVar18)(pcStack_150);\n          goto LAB_0002bc24;\n        }" { (expression_statement "(*pcVar18)(pcStack_150);" (call_expression "(*pcVar18)(pcStack_150)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(pcStack_150)" ( identifier ))) ;) (goto_statement "goto LAB_0002bc24;" goto statement_identifier ;) })) }))) (expression_statement "(*pcVar18)(pcStack_150);" (call_expression "(*pcVar18)(pcStack_150)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(pcStack_150)" ( 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_14c == *piVar12) {\n    return uVar6;\n  }" statement_identifier : (if_statement "if (iStack_14c == *piVar12) {\n    return uVar6;\n  }" if (parenthesized_expression "(iStack_14c == *piVar12)" ( (binary_expression "iStack_14c == *piVar12" identifier == (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) }))) (expression_statement "pcVar17 = *(code **)(pcVar17 + 0x8408c);" (assignment_expression "pcVar17 = *(code **)(pcVar17 + 0x8408c)" identifier = (pointer_expression "*(code **)(pcVar17 + 0x8408c)" * (cast_expression "(code **)(pcVar17 + 0x8408c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x8408c)" ( (binary_expression "pcVar17 + 0x8408c" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iStack_14c;" (assignment_expression "iVar4 = iStack_14c" identifier = identifier) ;) (expression_statement "(*pcVar17)();" (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * 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 "iVar5 = (**(code **)(pcVar17 + 0x83e84))();" (assignment_expression "iVar5 = (**(code **)(pcVar17 + 0x83e84))()" identifier = (call_expression "(**(code **)(pcVar17 + 0x83e84))()" (parenthesized_expression "(**(code **)(pcVar17 + 0x83e84))" ( (pointer_expression "**(code **)(pcVar17 + 0x83e84)" * (pointer_expression "*(code **)(pcVar17 + 0x83e84)" * (cast_expression "(code **)(pcVar17 + 0x83e84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + 0x83e84)" ( (binary_expression "pcVar17 + 0x83e84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n    uVar6 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar6 != NOCONERROR) {\n      if (uVar6 - 0x61 < 0x1a) {\n        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar6;\n    }\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar6 = (uerr_t)*(char *)(iVar4 + 5);\n    if (uVar6 != NOCONERROR) {\n      if (uVar6 - 0x61 < 0x1a) {\n        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar6;\n    }\n  }" { (expression_statement "uVar6 = (uerr_t)*(char *)(iVar4 + 5);" (assignment_expression "uVar6 = (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 (uVar6 != NOCONERROR) {\n      if (uVar6 - 0x61 < 0x1a) {\n        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar6;\n    }" if (parenthesized_expression "(uVar6 != NOCONERROR)" ( (binary_expression "uVar6 != NOCONERROR" identifier != identifier) )) (compound_statement "{\n      if (uVar6 - 0x61 < 0x1a) {\n        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }\n      return uVar6;\n    }" { (if_statement "if (uVar6 - 0x61 < 0x1a) {\n        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }" if (parenthesized_expression "(uVar6 - 0x61 < 0x1a)" ( (binary_expression "uVar6 - 0x61 < 0x1a" (binary_expression "uVar6 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n        uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);\n      }" { (expression_statement "uVar6 = (uerr_t)(char)(*(char *)(iVar4 + 5) + -0x20);" (assignment_expression "uVar6 = (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 uVar6;" return identifier ;) })) })) (return_statement "return 0x49;" return number_literal ;) })))
(translation_unit "int ftp_retr(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  char **ppcVar4;\n  int iVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  undefined4 uVar12;\n  char **ppcVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined8 uVar23;\n  char *pcStack_150;\n  int iStack_14c;\n  int iStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  int iStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  int iStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  undefined4 uStack_68;\n  byte *local_30;\n  char *local_18;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);\n  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);\n  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar13 = ppcVar4;\n  iVar6 = fd_write(param_1);\n  if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }\n  iVar6 = local_14;\n  puVar20 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar20 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar14 = 0;\n  ppcStack_70 = ppcVar4;\n  uStack_68 = param_1;\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }\n  iVar17 = *(int *)(puStack_90 + -0x7c70);\n  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);\n  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }\n  pcVar21 = *(code **)(puStack_90 + -0x785c);\n  pcVar22 = ftp_syst;\n  pcVar10 = pcStack_74;\n  (*pcVar21)();\n  pcStack_d8 = pcVar21 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar21 + 0x84598);\n  iStack_cc = *piVar15;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar14;\n  iStack_c0 = iVar6;\n  iStack_bc = iVar17 + -0x6ee0;\n  iStack_b8 = iVar18;\n  ppcStack_b4 = ppcVar13;\n  uStack_b0 = uVar19;\n  pcStack_ac = pcVar22;\n  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);\n  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar13 = ppcVar7;\n  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar22 = ftp_pwd;\n  iVar6 = iStack_cc;\n  (*pcVar21)();\n  pcStack_118 = pcVar21 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar21 + 0x84298);\n  iStack_10c = *piVar16;\n  iStack_104 = iVar5;\n  piStack_100 = piVar15;\n  pcStack_fc = pcVar10;\n  puStack_f8 = puVar8;\n  pcStack_f4 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);\n  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_118 + -0x785c);\n  pcVar22 = ftp_size;\n  iVar14 = iStack_10c;\n  (*pcVar21)();\n  piVar15 = *(int **)(pcVar21 + 0x840f4);\n  iStack_14c = *piVar15;\n  iStack_148 = iVar5;\n  piStack_144 = piVar16;\n  iStack_140 = iVar6;\n  ppcStack_13c = ppcVar13;\n  ppcStack_138 = ppcVar4;\n  pcStack_134 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);\n  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);\n  iVar5 = fd_write(iVar14,uVar19,uVar12);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcVar21 + 0x8408c);\n  iVar5 = iStack_14c;\n  (*pcVar21)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar21 + 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_retr(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  char **ppcVar4;\n  int iVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  undefined4 uVar12;\n  char **ppcVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined8 uVar23;\n  char *pcStack_150;\n  int iStack_14c;\n  int iStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  int iStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  int iStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  undefined4 uStack_68;\n  byte *local_30;\n  char *local_18;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);\n  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);\n  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar13 = ppcVar4;\n  iVar6 = fd_write(param_1);\n  if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }\n  iVar6 = local_14;\n  puVar20 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar20 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar14 = 0;\n  ppcStack_70 = ppcVar4;\n  uStack_68 = param_1;\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }\n  iVar17 = *(int *)(puStack_90 + -0x7c70);\n  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);\n  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }\n  pcVar21 = *(code **)(puStack_90 + -0x785c);\n  pcVar22 = ftp_syst;\n  pcVar10 = pcStack_74;\n  (*pcVar21)();\n  pcStack_d8 = pcVar21 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar21 + 0x84598);\n  iStack_cc = *piVar15;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar14;\n  iStack_c0 = iVar6;\n  iStack_bc = iVar17 + -0x6ee0;\n  iStack_b8 = iVar18;\n  ppcStack_b4 = ppcVar13;\n  uStack_b0 = uVar19;\n  pcStack_ac = pcVar22;\n  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);\n  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar13 = ppcVar7;\n  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar22 = ftp_pwd;\n  iVar6 = iStack_cc;\n  (*pcVar21)();\n  pcStack_118 = pcVar21 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar21 + 0x84298);\n  iStack_10c = *piVar16;\n  iStack_104 = iVar5;\n  piStack_100 = piVar15;\n  pcStack_fc = pcVar10;\n  puStack_f8 = puVar8;\n  pcStack_f4 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);\n  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_118 + -0x785c);\n  pcVar22 = ftp_size;\n  iVar14 = iStack_10c;\n  (*pcVar21)();\n  piVar15 = *(int **)(pcVar21 + 0x840f4);\n  iStack_14c = *piVar15;\n  iStack_148 = iVar5;\n  piStack_144 = piVar16;\n  iStack_140 = iVar6;\n  ppcStack_13c = ppcVar13;\n  ppcStack_138 = ppcVar4;\n  pcStack_134 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);\n  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);\n  iVar5 = fd_write(iVar14,uVar19,uVar12);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcVar21 + 0x8408c);\n  iVar5 = iStack_14c;\n  (*pcVar21)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar21 + 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_retr(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  char **ppcVar4;\n  int iVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  undefined4 uVar12;\n  char **ppcVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined8 uVar23;\n  char *pcStack_150;\n  int iStack_14c;\n  int iStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  int iStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  int iStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  undefined4 uStack_68;\n  byte *local_30;\n  char *local_18;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);\n  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);\n  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar13 = ppcVar4;\n  iVar6 = fd_write(param_1);\n  if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }\n  iVar6 = local_14;\n  puVar20 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar20 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar14 = 0;\n  ppcStack_70 = ppcVar4;\n  uStack_68 = param_1;\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }\n  iVar17 = *(int *)(puStack_90 + -0x7c70);\n  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);\n  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }\n  pcVar21 = *(code **)(puStack_90 + -0x785c);\n  pcVar22 = ftp_syst;\n  pcVar10 = pcStack_74;\n  (*pcVar21)();\n  pcStack_d8 = pcVar21 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar21 + 0x84598);\n  iStack_cc = *piVar15;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar14;\n  iStack_c0 = iVar6;\n  iStack_bc = iVar17 + -0x6ee0;\n  iStack_b8 = iVar18;\n  ppcStack_b4 = ppcVar13;\n  uStack_b0 = uVar19;\n  pcStack_ac = pcVar22;\n  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);\n  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar13 = ppcVar7;\n  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar22 = ftp_pwd;\n  iVar6 = iStack_cc;\n  (*pcVar21)();\n  pcStack_118 = pcVar21 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar21 + 0x84298);\n  iStack_10c = *piVar16;\n  iStack_104 = iVar5;\n  piStack_100 = piVar15;\n  pcStack_fc = pcVar10;\n  puStack_f8 = puVar8;\n  pcStack_f4 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);\n  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_118 + -0x785c);\n  pcVar22 = ftp_size;\n  iVar14 = iStack_10c;\n  (*pcVar21)();\n  piVar15 = *(int **)(pcVar21 + 0x840f4);\n  iStack_14c = *piVar15;\n  iStack_148 = iVar5;\n  piStack_144 = piVar16;\n  iStack_140 = iVar6;\n  ppcStack_13c = ppcVar13;\n  ppcStack_138 = ppcVar4;\n  pcStack_134 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);\n  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);\n  iVar5 = fd_write(iVar14,uVar19,uVar12);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcVar21 + 0x8408c);\n  iVar5 = iStack_14c;\n  (*pcVar21)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar21 + 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 "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char **ppcVar4;" primitive_type (pointer_declarator "**ppcVar4" * (pointer_declarator "*ppcVar4" * identifier)) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char **ppcVar7;" primitive_type (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "char **ppcVar13;" primitive_type (pointer_declarator "**ppcVar13" * (pointer_declarator "*ppcVar13" * 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 "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined8 uVar23;" type_identifier identifier ;) (declaration "char *pcStack_150;" primitive_type (pointer_declarator "*pcStack_150" * identifier) ;) (declaration "int iStack_14c;" primitive_type identifier ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "int *piStack_144;" primitive_type (pointer_declarator "*piStack_144" * identifier) ;) (declaration "int iStack_140;" primitive_type identifier ;) (declaration "char **ppcStack_13c;" primitive_type (pointer_declarator "**ppcStack_13c" * (pointer_declarator "*ppcStack_13c" * identifier)) ;) (declaration "char **ppcStack_138;" primitive_type (pointer_declarator "**ppcStack_138" * (pointer_declarator "*ppcStack_138" * identifier)) ;) (declaration "code *pcStack_134;" type_identifier (pointer_declarator "*pcStack_134" * identifier) ;) (declaration "undefined8 uStack_120;" type_identifier identifier ;) (declaration "code *pcStack_118;" type_identifier (pointer_declarator "*pcStack_118" * identifier) ;) (declaration "char *pcStack_110;" primitive_type (pointer_declarator "*pcStack_110" * identifier) ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "int *piStack_100;" primitive_type (pointer_declarator "*piStack_100" * identifier) ;) (declaration "char *pcStack_fc;" primitive_type (pointer_declarator "*pcStack_fc" * identifier) ;) (declaration "undefined4 *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "code *pcStack_f4;" type_identifier (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "undefined8 uStack_e0;" type_identifier identifier ;) (declaration "code *pcStack_d8;" type_identifier (pointer_declarator "*pcStack_d8" * identifier) ;) (declaration "char *pcStack_d0;" primitive_type (pointer_declarator "*pcStack_d0" * identifier) ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "char **ppcStack_c8;" primitive_type (pointer_declarator "**ppcStack_c8" * (pointer_declarator "*ppcStack_c8" * identifier)) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "int iStack_c0;" primitive_type identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "char **ppcStack_b4;" primitive_type (pointer_declarator "**ppcStack_b4" * (pointer_declarator "*ppcStack_b4" * identifier)) ;) (declaration "undefined4 uStack_b0;" type_identifier identifier ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "undefined8 uStack_98;" type_identifier identifier ;) (declaration "undefined *puStack_90;" type_identifier (pointer_declarator "*puStack_90" * identifier) ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined4 *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "byte *pbStack_7c;" type_identifier (pointer_declarator "*pbStack_7c" * identifier) ;) (declaration "char *pcStack_78;" primitive_type (pointer_declarator "*pcStack_78" * identifier) ;) (declaration "char *pcStack_74;" primitive_type (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "char **ppcStack_70;" primitive_type (pointer_declarator "**ppcStack_70" * (pointer_declarator "*ppcStack_70" * identifier)) ;) (declaration "undefined *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "byte *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "char *local_18;" primitive_type (pointer_declarator "*local_18" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_14 = *(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))) ;) (expression_statement "ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);" (assignment_expression "ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0)" identifier = (cast_expression "(char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0)" identifier (argument_list "(PTR_s_hallenge__000af46c + -0x15c0)" ( (binary_expression "PTR_s_hallenge__000af46c + -0x15c0" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);" (assignment_expression "iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4)" identifier = (call_expression "(*(code *)PTR_strlen_000afc68)(ppcVar4)" (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 "(ppcVar4)" ( identifier )))) ;) (expression_statement "uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);" (assignment_expression "uVar23 = *(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 "ppcVar13 = ppcVar4;" (assignment_expression "ppcVar13 = ppcVar4" identifier = identifier) ;) (expression_statement "iVar6 = fd_write(param_1);" (assignment_expression "iVar6 = fd_write(param_1)" identifier = (call_expression "fd_write(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }" { (expression_statement "(*(code *)PTR_free_000afd08)(ppcVar4);" (call_expression "(*(code *)PTR_free_000afd08)(ppcVar4)" (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 "(ppcVar4)" ( identifier ))) ;) (expression_statement "iVar6 = 0x2c;" (assignment_expression "iVar6 = 0x2c" identifier = number_literal) ;) }) (else_clause "else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }" else (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\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 "ppcVar13 = &local_18;" (assignment_expression "ppcVar13 = &local_18" identifier = (pointer_expression "&local_18" & identifier)) ;) (expression_statement "iVar6 = ftp_response(param_1);" (assignment_expression "iVar6 = ftp_response(param_1)" identifier = (call_expression "ftp_response(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }" if (parenthesized_expression "(iVar6 == 7)" ( (binary_expression "iVar6 == 7" identifier == number_literal) )) (compound_statement "{\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }" { (expression_statement "ppcVar13 = (char **)0x31;" (assignment_expression "ppcVar13 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" if (parenthesized_expression "(*local_18 == '5')" ( (binary_expression "*local_18 == '5'" (pointer_expression "*local_18" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\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 "iVar6 = 0xc;" (assignment_expression "iVar6 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" else (if_statement "if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" if (parenthesized_expression "(*local_18 == '1')" ( (binary_expression "*local_18 == '1'" (pointer_expression "*local_18" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\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 "()" ( ))) ;) }) (else_clause "else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" else (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\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 "iVar6 = 0xe;" (assignment_expression "iVar6 = 0xe" identifier = number_literal) ;) }))))) })) }))) (if_statement "if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }" if (parenthesized_expression "(local_14 == *(int *)puVar2)" ( (binary_expression "local_14 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "iVar6 = local_14;" (assignment_expression "iVar6 = local_14" identifier = identifier) ;) (expression_statement "puVar20 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar20 = 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_90 = puVar20 + 0x8c004;" (assignment_expression "puStack_90 = puVar20 + 0x8c004" identifier = (binary_expression "puVar20 + 0x8c004" identifier + number_literal)) ;) (expression_statement "puStack_80 = *(undefined4 **)(puVar20 + 0x84810);" (assignment_expression "puStack_80 = *(undefined4 **)(puVar20 + 0x84810)" identifier = (pointer_expression "*(undefined4 **)(puVar20 + 0x84810)" * (cast_expression "(undefined4 **)(puVar20 + 0x84810)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x84810)" ( (binary_expression "puVar20 + 0x84810" identifier + number_literal) ))))) ;) (expression_statement "local_30 = (byte *)((ulonglong)uVar23 >> 0x20);" (assignment_expression "local_30 = (byte *)((ulonglong)uVar23 >> 0x20)" identifier = (cast_expression "(byte *)((ulonglong)uVar23 >> 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar23 >> 0x20)" ( (binary_expression "(ulonglong)uVar23 >> 0x20" (cast_expression "(ulonglong)uVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puStack_6c = puVar2;" (assignment_expression "puStack_6c = puVar2" identifier = identifier) ;) (expression_statement "pbStack_7c = local_30;" (assignment_expression "pbStack_7c = local_30" identifier = identifier) ;) (expression_statement "pcStack_74 = (char *)*puStack_80;" (assignment_expression "pcStack_74 = (char *)*puStack_80" identifier = (cast_expression "(char *)*puStack_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_80" * identifier))) ;) (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" * identifier) = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "ppcStack_70 = ppcVar4;" (assignment_expression "ppcStack_70 = ppcVar4" identifier = identifier) ;) (expression_statement "uStack_68 = param_1;" (assignment_expression "uStack_68 = param_1" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }" { (expression_statement "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;" (assignment_expression "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0" identifier = (binary_expression "*(int *)(puVar20 + 0x84040) + -0x15b0" (pointer_expression "*(int *)(puVar20 + 0x84040)" * (cast_expression "(int *)(puVar20 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x84040)" ( (binary_expression "puVar20 + 0x84040" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" else (if_statement "if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0')" ( (binary_expression "*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b)" * (cast_expression "(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0x8405c) + 0x16b)" ( (binary_expression "*(int *)(puVar20 + 0x8405c) + 0x16b" (pointer_expression "*(int *)(puVar20 + 0x8405c)" * (cast_expression "(int *)(puVar20 + 0x8405c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x8405c)" ( (binary_expression "puVar20 + 0x8405c" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }" { (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8" identifier = (binary_expression "*(int *)(puVar20 + 0x84040) + -0x15b8" (pointer_expression "*(int *)(puVar20 + 0x84040)" * (cast_expression "(int *)(puVar20 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x84040)" ( (binary_expression "puVar20 + 0x84040" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" else (compound_statement "{\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" { (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (expression_statement "debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);" (call_expression "debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8)" identifier (argument_list "(*(int *)(puVar20 + 0x84040) + -0x15a8)" ( (binary_expression "*(int *)(puVar20 + 0x84040) + -0x15a8" (pointer_expression "*(int *)(puVar20 + 0x84040)" * (cast_expression "(int *)(puVar20 + 0x84040)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x84040)" ( (binary_expression "puVar20 + 0x84040" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8" identifier = (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" * (cast_expression "(int *)(puStack_90 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc4)" ( (binary_expression "puStack_90 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) }))))) (expression_statement "iVar17 = *(int *)(puStack_90 + -0x7c70);" (assignment_expression "iVar17 = *(int *)(puStack_90 + -0x7c70)" identifier = (pointer_expression "*(int *)(puStack_90 + -0x7c70)" * (cast_expression "(int *)(puStack_90 + -0x7c70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7c70)" ( (binary_expression "puStack_90 + -0x7c70" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);" (assignment_expression "uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(puStack_90 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc8)" * (cast_expression "(int *)(puStack_90 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc8)" ( (binary_expression "puStack_90 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);" (assignment_expression "uVar19 = *(undefined4 *)(puStack_90 + -0x7d38)" identifier = (pointer_expression "*(undefined4 *)(puStack_90 + -0x7d38)" * (cast_expression "(undefined4 *)(puStack_90 + -0x7d38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7d38)" ( (binary_expression "puStack_90 + -0x7d38" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8" identifier = (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" * (cast_expression "(int *)(puStack_90 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc4)" ( (binary_expression "puStack_90 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);" do (compound_statement "{\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  }" { (while_statement "while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" { (expression_statement "ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);" (assignment_expression "ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13)" identifier = (cast_expression "(char **)FUN_00029120(iVar5,ppcVar13)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(iVar5,ppcVar13)" identifier (argument_list "(iVar5,ppcVar13)" ( identifier , identifier ))))) ;) (expression_statement "puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" identifier = (cast_expression "(undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(puStack_90 + -0x77c8))" ( (pointer_expression "**(code **)(puStack_90 + -0x77c8)" * (pointer_expression "*(code **)(puStack_90 + -0x77c8)" * (cast_expression "(code **)(puStack_90 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x77c8)" ( (binary_expression "puStack_90 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))))) ;) (expression_statement "ppcVar4 = ppcVar7;" (assignment_expression "ppcVar4 = ppcVar7" identifier = identifier) ;) (expression_statement "uStack_98 = uVar23;" (assignment_expression "uStack_98 = uVar23" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(iVar6);" (assignment_expression "iVar5 = fd_write(iVar6)" identifier = (call_expression "fd_write(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }" { (expression_statement "(**(code **)(puStack_90 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(puStack_90 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" ( (pointer_expression "**(code **)(puStack_90 + -0x7728)" * (pointer_expression "*(code **)(puStack_90 + -0x7728)" * (cast_expression "(code **)(puStack_90 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x7728)" ( (binary_expression "puStack_90 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))) ;) (expression_statement "iVar9 = 0x2c;" (assignment_expression "iVar9 = 0x2c" identifier = number_literal) ;) (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 **)(puStack_90 + -0x7728))();" (call_expression "(**(code **)(puStack_90 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" ( (pointer_expression "**(code **)(puStack_90 + -0x7728)" * (pointer_expression "*(code **)(puStack_90 + -0x7728)" * (cast_expression "(code **)(puStack_90 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x7728)" ( (binary_expression "puStack_90 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar4 = &pcStack_78;" (assignment_expression "ppcVar4 = &pcStack_78" identifier = (pointer_expression "&pcStack_78" & identifier)) ;) (expression_statement "iVar9 = ftp_response(iVar6);" (assignment_expression "iVar9 = ftp_response(iVar6)" identifier = (call_expression "ftp_response(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "iVar5 = iVar18;" (assignment_expression "iVar5 = iVar18" identifier = identifier) ;) (if_statement "if (iVar9 != 7) break;" if (parenthesized_expression "(iVar9 != 7)" ( (binary_expression "iVar9 != 7" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppcVar4 = (char **)0x31;" (assignment_expression "ppcVar4 = (char **)0x31" identifier = (cast_expression "(char **)0x31" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_78 == '5')" ( (binary_expression "*pcStack_78 == '5'" (pointer_expression "*pcStack_78" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) }) (else_clause "else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" else (if_statement "if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" if (parenthesized_expression "(*pcStack_78 == '1')" ( (binary_expression "*pcStack_78 == '1'" (pointer_expression "*pcStack_78" * identifier) == (char_literal "'1'" ' character ')) )) (compound_statement "{\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }" { (expression_statement "*pbStack_7c = (byte)iVar14 ^ 1;" (assignment_expression "*pbStack_7c = (byte)iVar14 ^ 1" (pointer_expression "*pbStack_7c" * 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        iVar9 = 0xe;\n      }" else (compound_statement "{\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0xe;" (assignment_expression "iVar9 = 0xe" identifier = number_literal) ;) }))))) (expression_statement "iStack_84 = iVar9;" (assignment_expression "iStack_84 = iVar9" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_90 + -0x7728))();" (call_expression "(**(code **)(puStack_90 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" ( (pointer_expression "**(code **)(puStack_90 + -0x7728)" * (pointer_expression "*(code **)(puStack_90 + -0x7728)" * (cast_expression "(code **)(puStack_90 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x7728)" ( (binary_expression "puStack_90 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_78 = (char *)0x0;" (assignment_expression "pcStack_78 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar9 = iStack_84;" (assignment_expression "iVar9 = iStack_84" 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 ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;" if (parenthesized_expression "((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))" ( (binary_expression "(ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)" (parenthesized_expression "(ppcVar7 != (char **)&DAT_00000001)" ( (binary_expression "ppcVar7 != (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 = 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 (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }" { (labeled_statement "LAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }" statement_identifier : (if_statement "if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }" if (parenthesized_expression "((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))" ( (binary_expression "(ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')" (parenthesized_expression "(ppcVar7 == (char **)&DAT_00000001)" ( (binary_expression "ppcVar7 == (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 *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')" ( (binary_expression "*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'" (pointer_expression "*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" * (cast_expression "(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" ( (binary_expression "*(int *)(puStack_90 + -0x7fa8) + 0x16b" (pointer_expression "*(int *)(puStack_90 + -0x7fa8)" * (cast_expression "(int *)(puStack_90 + -0x7fa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fa8)" ( (binary_expression "puStack_90 + -0x7fa8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }" { (expression_statement "iStack_84 = iVar9;" (assignment_expression "iStack_84 = iVar9" identifier = identifier) ;) (expression_statement "debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);" (call_expression "debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590)" identifier (argument_list "(*(int *)(puStack_90 + -0x7fc4) + -0x1590)" ( (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x1590" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" * (cast_expression "(int *)(puStack_90 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_90 + -0x7fc4)" ( (binary_expression "puStack_90 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar9 = iStack_84;" (assignment_expression "iVar9 = iStack_84" identifier = identifier) ;) }))) (break_statement "break;" break ;) })) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "(ppcVar7 == (char **)&DAT_00000001)" ( (binary_expression "ppcVar7 == (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_74 == (char *)*puStack_80) {\n    return iVar9;\n  }" statement_identifier : (if_statement "if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }" if (parenthesized_expression "(pcStack_74 == (char *)*puStack_80)" ( (binary_expression "pcStack_74 == (char *)*puStack_80" identifier == (cast_expression "(char *)*puStack_80" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_80" * identifier))) )) (compound_statement "{\n    return iVar9;\n  }" { (return_statement "return iVar9;" return identifier ;) }))) (expression_statement "pcVar21 = *(code **)(puStack_90 + -0x785c);" (assignment_expression "pcVar21 = *(code **)(puStack_90 + -0x785c)" identifier = (pointer_expression "*(code **)(puStack_90 + -0x785c)" * (cast_expression "(code **)(puStack_90 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_90 + -0x785c)" ( (binary_expression "puStack_90 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = ftp_syst;" (assignment_expression "pcVar22 = ftp_syst" identifier = identifier) ;) (expression_statement "pcVar10 = pcStack_74;" (assignment_expression "pcVar10 = pcStack_74" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_d8 = pcVar21 + 0x8bd8c;" (assignment_expression "pcStack_d8 = pcVar21 + 0x8bd8c" identifier = (binary_expression "pcVar21 + 0x8bd8c" identifier + number_literal)) ;) (expression_statement "piVar15 = *(int **)(pcVar21 + 0x84598);" (assignment_expression "piVar15 = *(int **)(pcVar21 + 0x84598)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x84598)" * (cast_expression "(int **)(pcVar21 + 0x84598)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x84598)" ( (binary_expression "pcVar21 + 0x84598" identifier + number_literal) ))))) ;) (expression_statement "iStack_cc = *piVar15;" (assignment_expression "iStack_cc = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "ppcStack_c8 = ppcVar7;" (assignment_expression "ppcStack_c8 = ppcVar7" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar14;" (assignment_expression "iStack_c4 = iVar14" identifier = identifier) ;) (expression_statement "iStack_c0 = iVar6;" (assignment_expression "iStack_c0 = iVar6" identifier = identifier) ;) (expression_statement "iStack_bc = iVar17 + -0x6ee0;" (assignment_expression "iStack_bc = iVar17 + -0x6ee0" identifier = (binary_expression "iVar17 + -0x6ee0" identifier + number_literal)) ;) (expression_statement "iStack_b8 = iVar18;" (assignment_expression "iStack_b8 = iVar18" identifier = identifier) ;) (expression_statement "ppcStack_b4 = ppcVar13;" (assignment_expression "ppcStack_b4 = ppcVar13" identifier = identifier) ;) (expression_statement "uStack_b0 = uVar19;" (assignment_expression "uStack_b0 = uVar19" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar22;" (assignment_expression "pcStack_ac = pcVar22" identifier = identifier) ;) (expression_statement "ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);" (assignment_expression "ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" identifier = (cast_expression "(char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" identifier (argument_list "(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" ( (binary_expression "*(int *)(pcVar21 + 0x83dc8) + -0x157c" (pointer_expression "*(int *)(pcVar21 + 0x83dc8)" * (cast_expression "(int *)(pcVar21 + 0x83dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x83dc8)" ( (binary_expression "pcVar21 + 0x83dc8" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);" (assignment_expression "uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_d8 + -0x77c8)" * (cast_expression "(code **)(pcStack_d8 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x77c8)" ( (binary_expression "pcStack_d8 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier )))) ;) (expression_statement "uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc8)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc8)" ( (binary_expression "pcStack_d8 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppcVar13 = ppcVar7;" (assignment_expression "ppcVar13 = ppcVar7" identifier = identifier) ;) (expression_statement "iVar5 = fd_write(pcVar10,ppcVar7,uVar19);" (assignment_expression "iVar5 = fd_write(pcVar10,ppcVar7,uVar19)" identifier = (call_expression "fd_write(pcVar10,ppcVar7,uVar19)" identifier (argument_list "(pcVar10,ppcVar7,uVar19)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(ppcVar7)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7728))();" (call_expression "(**(code **)(pcStack_d8 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar13 = &pcStack_d0;" (assignment_expression "ppcVar13 = &pcStack_d0" identifier = (pointer_expression "&pcStack_d0" & identifier)) ;) (expression_statement "iVar5 = ftp_response(pcVar10);" (assignment_expression "iVar5 = ftp_response(pcVar10)" identifier = (call_expression "ftp_response(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) (expression_statement "pcVar3 = pcStack_d0;" (assignment_expression "pcVar3 = pcStack_d0" identifier = identifier) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }" { (if_statement "if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" if (parenthesized_expression "(*pcStack_d0 == '5')" ( (binary_expression "*pcStack_d0 == '5'" (pointer_expression "*pcStack_d0" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }" { (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_d0)" ( identifier ))) ;) (expression_statement "pcVar10 = pcStack_d0;" (assignment_expression "pcVar10 = pcStack_d0" identifier = identifier) ;) }) (else_clause "else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" else (compound_statement "{\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" { (expression_statement "iVar6 = *(int *)(pcStack_d8 + -0x7fc8);" (assignment_expression "iVar6 = *(int *)(pcStack_d8 + -0x7fc8)" identifier = (pointer_expression "*(int *)(pcStack_d8 + -0x7fc8)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc8)" ( (binary_expression "pcStack_d8 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);" (assignment_expression "uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x794c))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x794c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x794c)" * (cast_expression "(code **)(pcStack_d8 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x794c)" ( (binary_expression "pcStack_d8 + -0x794c" identifier + number_literal) ))))) )) (argument_list "(pcStack_d0)" ( identifier )))) ;) (expression_statement "(**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);" (call_expression "(**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7888)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7888)" * (cast_expression "(code **)(pcStack_d8 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7888)" ( (binary_expression "pcStack_d8 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcVar3,iVar6 + 0x4a48)" ( identifier , (binary_expression "iVar6 + 0x4a48" identifier + number_literal) ))) ;) (expression_statement "ppcVar13 = (char **)(iVar6 + 0x4a48);" (assignment_expression "ppcVar13 = (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 "pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);" (assignment_expression "pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0)" identifier = (cast_expression "(char *)(**(code **)(pcStack_d8 + -0x7888))(0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_d8 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7888)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7888)" * (cast_expression "(code **)(pcStack_d8 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7888)" ( (binary_expression "pcStack_d8 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "*puVar8 = 2;" (assignment_expression "*puVar8 = 2" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (if_statement "if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }" { (labeled_statement "LAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;" statement_identifier : (expression_statement "*ppcVar4 = (char *)0x5;" (assignment_expression "*ppcVar4 = (char *)0x5" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }" else (compound_statement "{\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1574" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            *ppcVar4 = (char *)0x1;\n          }" { (expression_statement "*ppcVar4 = (char *)0x1;" (assignment_expression "*ppcVar4 = (char *)0x1" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }" else (compound_statement "{\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }" { (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" ( identifier , (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1570" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }" { (expression_statement "iVar6 = *(int *)(pcStack_d8 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_d8 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) ))))) ;) (expression_statement "pcVar21 = *(code **)(pcStack_d8 + -0x7db0);" (assignment_expression "pcVar21 = *(code **)(pcStack_d8 + -0x7db0)" identifier = (pointer_expression "*(code **)(pcStack_d8 + -0x7db0)" * (cast_expression "(code **)(pcStack_d8 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7db0)" ( (binary_expression "pcStack_d8 + -0x7db0" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar4 = (char *)0x0;" (assignment_expression "*ppcVar4 = (char *)0x0" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar13 = (char **)(iVar6 + -0x1568);" (assignment_expression "ppcVar13 = (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 = (*pcVar21)(uVar19,ppcVar13,0x11);" (assignment_expression "iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11)" identifier = (call_expression "(*pcVar21)(uVar19,ppcVar13,0x11)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(uVar19,ppcVar13,0x11)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                *puVar8 = 0;\n              }" { (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) }) (else_clause "else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }" else (compound_statement "{\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1554" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7db0))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7db0)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7db0)" * (cast_expression "(code **)(pcStack_d8 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7db0)" ( (binary_expression "pcStack_d8 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(uVar19,ppcVar13,0x29)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                  *puVar8 = 1;\n                }" { (expression_statement "*puVar8 = 1;" (assignment_expression "*puVar8 = 1" (pointer_expression "*puVar8" * identifier) = number_literal) ;) })) }))) }) (else_clause "else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }" else (compound_statement "{\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1528" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x151c" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1510" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    *ppcVar4 = (char *)0x3;\n                  }" { (expression_statement "*ppcVar4 = (char *)0x3;" (assignment_expression "*ppcVar4 = (char *)0x3" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }" else (compound_statement "{\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }" { (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" identifier = (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1508" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" * (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7fc4)" ( (binary_expression "pcStack_d8 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" * (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7e9c)" ( (binary_expression "pcStack_d8 + -0x7e9c" identifier + number_literal) ))))) )) (argument_list "(pcVar10)" ( 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 "*ppcVar4 = (char *)0x4;" (assignment_expression "*ppcVar4 = (char *)0x4" (pointer_expression "*ppcVar4" * 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 "*ppcVar4 = (char *)0x2;" (assignment_expression "*ppcVar4 = (char *)0x2" (pointer_expression "*ppcVar4" * identifier) = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) }))) (labeled_statement "LAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);" statement_identifier : (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(uVar19);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(uVar19)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" * (cast_expression "(code **)(pcStack_d8 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7728)" ( (binary_expression "pcStack_d8 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_d0)" ( identifier ))) ;) }))) })) }))) (if_statement "if (iStack_cc == *piVar15) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_cc == *piVar15)" ( (binary_expression "iStack_cc == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "pcVar21 = *(code **)(pcStack_d8 + -0x785c);" (assignment_expression "pcVar21 = *(code **)(pcStack_d8 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_d8 + -0x785c)" * (cast_expression "(code **)(pcStack_d8 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x785c)" ( (binary_expression "pcStack_d8 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = ftp_pwd;" (assignment_expression "pcVar22 = ftp_pwd" identifier = identifier) ;) (expression_statement "iVar6 = iStack_cc;" (assignment_expression "iVar6 = iStack_cc" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_118 = pcVar21 + 0x8ba8c;" (assignment_expression "pcStack_118 = pcVar21 + 0x8ba8c" identifier = (binary_expression "pcVar21 + 0x8ba8c" identifier + number_literal)) ;) (expression_statement "piVar16 = *(int **)(pcVar21 + 0x84298);" (assignment_expression "piVar16 = *(int **)(pcVar21 + 0x84298)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x84298)" * (cast_expression "(int **)(pcVar21 + 0x84298)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x84298)" ( (binary_expression "pcVar21 + 0x84298" identifier + number_literal) ))))) ;) (expression_statement "iStack_10c = *piVar16;" (assignment_expression "iStack_10c = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iStack_104 = iVar5;" (assignment_expression "iStack_104 = iVar5" identifier = identifier) ;) (expression_statement "piStack_100 = piVar15;" (assignment_expression "piStack_100 = piVar15" identifier = identifier) ;) (expression_statement "pcStack_fc = pcVar10;" (assignment_expression "pcStack_fc = pcVar10" identifier = identifier) ;) (expression_statement "puStack_f8 = puVar8;" (assignment_expression "puStack_f8 = puVar8" identifier = identifier) ;) (expression_statement "pcStack_f4 = pcVar22;" (assignment_expression "pcStack_f4 = pcVar22" identifier = identifier) ;) (expression_statement "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);" (assignment_expression "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0)" identifier (argument_list "(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0)" ( (binary_expression "*(int *)(pcVar21 + 0x83ac8) + -0x1500" (pointer_expression "*(int *)(pcVar21 + 0x83ac8)" * (cast_expression "(int *)(pcVar21 + 0x83ac8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x83ac8)" ( (binary_expression "pcVar21 + 0x83ac8" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);" (assignment_expression "puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19)" identifier = (cast_expression "(undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_118 + -0x77c8))(uVar19)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x77c8))" ( (pointer_expression "**(code **)(pcStack_118 + -0x77c8)" * (pointer_expression "*(code **)(pcStack_118 + -0x77c8)" * (cast_expression "(code **)(pcStack_118 + -0x77c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x77c8)" ( (binary_expression "pcStack_118 + -0x77c8" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))))) ;) (expression_statement "uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" ( (binary_expression "*(int *)(pcStack_118 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_118 + -0x7fc8)" * (cast_expression "(int *)(pcStack_118 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_118 + -0x7fc8)" ( (binary_expression "pcStack_118 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar5 = fd_write(iVar6,uVar19);" (assignment_expression "iVar5 = fd_write(iVar6,uVar19)" identifier = (call_expression "fd_write(iVar6,uVar19)" identifier (argument_list "(iVar6,uVar19)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_118 + -0x7728))(uVar19);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(uVar19)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))) ;) }) (else_clause "else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" { (expression_statement "(**(code **)(pcStack_118 + -0x7728))();" (call_expression "(**(code **)(pcStack_118 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_110);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_110)" identifier = (call_expression "ftp_response(iVar6,&pcStack_110)" identifier (argument_list "(iVar6,&pcStack_110)" ( identifier , (pointer_expression "&pcStack_110" & identifier) )))) ;) (if_statement "if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }" { (expression_statement "iVar6 = *(int *)(pcStack_118 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_118 + -0x7fc4)" identifier = (pointer_expression "*(int *)(pcStack_118 + -0x7fc4)" * (cast_expression "(int *)(pcStack_118 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_118 + -0x7fc4)" ( (binary_expression "pcStack_118 + -0x7fc4" identifier + number_literal) ))))) ;) (if_statement "if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }" if (parenthesized_expression "(*pcStack_110 != '5')" ( (binary_expression "*pcStack_110 != '5'" (pointer_expression "*pcStack_110" * identifier) != (char_literal "'5'" ' character ')) )) (compound_statement "{\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }" { (expression_statement "(**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);" (call_expression "(**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7888)" * (pointer_expression "*(code **)(pcStack_118 + -0x7888)" * (cast_expression "(code **)(pcStack_118 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7888)" ( (binary_expression "pcStack_118 + -0x7888" identifier + number_literal) ))))) )) (argument_list "(pcStack_110,iVar6 + -0x3d0)" ( identifier , (binary_expression "iVar6 + -0x3d0" identifier + number_literal) ))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);" (assignment_expression "iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0)" identifier = (call_expression "(**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7888))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7888)" * (pointer_expression "*(code **)(pcStack_118 + -0x7888)" * (cast_expression "(code **)(pcStack_118 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7888)" ( (binary_expression "pcStack_118 + -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_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }" { (expression_statement "(**(code **)(pcStack_118 + -0x7728))(*ppcVar13);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(*ppcVar13)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(*ppcVar13)" ( (pointer_expression "*ppcVar13" * identifier) ))) ;) (expression_statement "pcVar21 = *(code **)(pcStack_118 + -0x7fa4);" (assignment_expression "pcVar21 = *(code **)(pcStack_118 + -0x7fa4)" identifier = (pointer_expression "*(code **)(pcStack_118 + -0x7fa4)" * (cast_expression "(code **)(pcStack_118 + -0x7fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7fa4)" ( (binary_expression "pcStack_118 + -0x7fa4" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar13 = (char *)0x0;" (assignment_expression "*ppcVar13 = (char *)0x0" (pointer_expression "*ppcVar13" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar10 = (char *)(*pcVar21)(iVar6);" (assignment_expression "pcVar10 = (char *)(*pcVar21)(iVar6)" identifier = (cast_expression "(char *)(*pcVar21)(iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar21)(iVar6)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "pcVar21 = *(code **)(pcStack_118 + -0x7728);" (assignment_expression "pcVar21 = *(code **)(pcStack_118 + -0x7728)" identifier = (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) ;) (expression_statement "*ppcVar13 = pcVar10;" (assignment_expression "*ppcVar13 = pcVar10" (pointer_expression "*ppcVar13" * identifier) = identifier) ;) (expression_statement "(*pcVar21)(pcStack_110);" (call_expression "(*pcVar21)(pcStack_110)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(pcStack_110)" ( identifier ))) ;) (goto_statement "goto LAB_0002bae8;" goto statement_identifier ;) })) })) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "(**(code **)(pcStack_118 + -0x7728))(pcStack_110);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(pcStack_110)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" ( (pointer_expression "**(code **)(pcStack_118 + -0x7728)" * (pointer_expression "*(code **)(pcStack_118 + -0x7728)" * (cast_expression "(code **)(pcStack_118 + -0x7728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x7728)" ( (binary_expression "pcStack_118 + -0x7728" identifier + number_literal) ))))) )) (argument_list "(pcStack_110)" ( identifier ))) ;) })) }))) (labeled_statement "LAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (iStack_10c == *piVar16) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_10c == *piVar16)" ( (binary_expression "iStack_10c == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar21 = *(code **)(pcStack_118 + -0x785c);" (assignment_expression "pcVar21 = *(code **)(pcStack_118 + -0x785c)" identifier = (pointer_expression "*(code **)(pcStack_118 + -0x785c)" * (cast_expression "(code **)(pcStack_118 + -0x785c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_118 + -0x785c)" ( (binary_expression "pcStack_118 + -0x785c" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = ftp_size;" (assignment_expression "pcVar22 = ftp_size" identifier = identifier) ;) (expression_statement "iVar14 = iStack_10c;" (assignment_expression "iVar14 = iStack_10c" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = *(int **)(pcVar21 + 0x840f4);" (assignment_expression "piVar15 = *(int **)(pcVar21 + 0x840f4)" identifier = (pointer_expression "*(int **)(pcVar21 + 0x840f4)" * (cast_expression "(int **)(pcVar21 + 0x840f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x840f4)" ( (binary_expression "pcVar21 + 0x840f4" identifier + number_literal) ))))) ;) (expression_statement "iStack_14c = *piVar15;" (assignment_expression "iStack_14c = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "iStack_148 = iVar5;" (assignment_expression "iStack_148 = iVar5" identifier = identifier) ;) (expression_statement "piStack_144 = piVar16;" (assignment_expression "piStack_144 = piVar16" identifier = identifier) ;) (expression_statement "iStack_140 = iVar6;" (assignment_expression "iStack_140 = iVar6" identifier = identifier) ;) (expression_statement "ppcStack_13c = ppcVar13;" (assignment_expression "ppcStack_13c = ppcVar13" identifier = identifier) ;) (expression_statement "ppcStack_138 = ppcVar4;" (assignment_expression "ppcStack_138 = ppcVar4" identifier = identifier) ;) (expression_statement "pcStack_134 = pcVar22;" (assignment_expression "pcStack_134 = pcVar22" identifier = identifier) ;) (expression_statement "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);" (assignment_expression "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc)" identifier = (call_expression "FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc)" identifier (argument_list "(*(int *)(pcVar21 + 0x83924) + -0x14fc)" ( (binary_expression "*(int *)(pcVar21 + 0x83924) + -0x14fc" (pointer_expression "*(int *)(pcVar21 + 0x83924)" * (cast_expression "(int *)(pcVar21 + 0x83924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x83924)" ( (binary_expression "pcVar21 + 0x83924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);" (assignment_expression "uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19)" identifier = (call_expression "(**(code **)(pcVar21 + 0x84120))(uVar19)" (parenthesized_expression "(**(code **)(pcVar21 + 0x84120))" ( (pointer_expression "**(code **)(pcVar21 + 0x84120)" * (pointer_expression "*(code **)(pcVar21 + 0x84120)" * (cast_expression "(code **)(pcVar21 + 0x84120)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x84120)" ( (binary_expression "pcVar21 + 0x84120" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "iVar5 = fd_write(iVar14,uVar19,uVar12);" (assignment_expression "iVar5 = fd_write(iVar14,uVar19,uVar12)" identifier = (call_expression "fd_write(iVar14,uVar19,uVar12)" identifier (argument_list "(iVar14,uVar19,uVar12)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" { (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar21 + 0x841c0))(uVar19);" (call_expression "(**(code **)(pcVar21 + 0x841c0))(uVar19)" (parenthesized_expression "(**(code **)(pcVar21 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar21 + 0x841c0)" * (pointer_expression "*(code **)(pcVar21 + 0x841c0)" * (cast_expression "(code **)(pcVar21 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841c0)" ( (binary_expression "pcVar21 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "*(undefined4 *)((int)puVar11 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar11 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar11 + 4)" * (cast_expression "(undefined4 *)((int)puVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 4)" ( (binary_expression "(int)puVar11 + 4" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" else (compound_statement "{\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" { (expression_statement "(**(code **)(pcVar21 + 0x841c0))();" (call_expression "(**(code **)(pcVar21 + 0x841c0))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x841c0))" ( (pointer_expression "**(code **)(pcVar21 + 0x841c0)" * (pointer_expression "*(code **)(pcVar21 + 0x841c0)" * (cast_expression "(code **)(pcVar21 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841c0)" ( (binary_expression "pcVar21 + 0x841c0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ftp_response(iVar14,&pcStack_150);" (assignment_expression "iVar5 = ftp_response(iVar14,&pcStack_150)" identifier = (call_expression "ftp_response(iVar14,&pcStack_150)" identifier (argument_list "(iVar14,&pcStack_150)" ( identifier , (pointer_expression "&pcStack_150" & identifier) )))) ;) (expression_statement "pcVar10 = pcStack_150;" (assignment_expression "pcVar10 = pcStack_150" identifier = identifier) ;) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }" if (parenthesized_expression "(iVar5 == 7)" ( (binary_expression "iVar5 == 7" identifier == number_literal) )) (compound_statement "{\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }" { (if_statement "if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" if (parenthesized_expression "(*pcStack_150 == '5')" ( (binary_expression "*pcStack_150 == '5'" (pointer_expression "*pcStack_150" * identifier) == (char_literal "'5'" ' character ')) )) (compound_statement "{\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }" { (expression_statement "pcVar22 = *(code **)(pcVar21 + 0x841c0);" (assignment_expression "pcVar22 = *(code **)(pcVar21 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar21 + 0x841c0)" * (cast_expression "(code **)(pcVar21 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841c0)" ( (binary_expression "pcVar21 + 0x841c0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" else (compound_statement "{\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" { (expression_statement "piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();" (assignment_expression "piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))()" identifier = (cast_expression "(int *)(**(code **)(pcVar21 + 0x84348))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar21 + 0x84348))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x84348))" ( (pointer_expression "**(code **)(pcVar21 + 0x84348)" * (pointer_expression "*(code **)(pcVar21 + 0x84348)" * (cast_expression "(code **)(pcVar21 + 0x84348)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x84348)" ( (binary_expression "pcVar21 + 0x84348" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar16 = 0;" (assignment_expression "*piVar16 = 0" (pointer_expression "*piVar16" * identifier) = number_literal) ;) (expression_statement "uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);" (assignment_expression "uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10)" identifier = (call_expression "(**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10)" (parenthesized_expression "(**(code **)(pcVar21 + 0x841f4))" ( (pointer_expression "**(code **)(pcVar21 + 0x841f4)" * (pointer_expression "*(code **)(pcVar21 + 0x841f4)" * (cast_expression "(code **)(pcVar21 + 0x841f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841f4)" ( (binary_expression "pcVar21 + 0x841f4" identifier + number_literal) ))))) )) (argument_list "(pcVar10 + 4,0,10)" ( (binary_expression "pcVar10 + 4" identifier + number_literal) , number_literal , number_literal )))) ;) (expression_statement "iVar6 = *piVar16;" (assignment_expression "iVar6 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "*puVar11 = uVar23;" (assignment_expression "*puVar11 = uVar23" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "pcVar22 = *(code **)(pcVar21 + 0x841c0);" (assignment_expression "pcVar22 = *(code **)(pcVar21 + 0x841c0)" identifier = (pointer_expression "*(code **)(pcVar21 + 0x841c0)" * (cast_expression "(code **)(pcVar21 + 0x841c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x841c0)" ( (binary_expression "pcVar21 + 0x841c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }" { (expression_statement "(*pcVar22)(pcStack_150);" (call_expression "(*pcVar22)(pcStack_150)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcStack_150)" ( identifier ))) ;) (goto_statement "goto LAB_0002bc24;" goto statement_identifier ;) })) }))) (expression_statement "(*pcVar22)(pcStack_150);" (call_expression "(*pcVar22)(pcStack_150)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(pcStack_150)" ( identifier ))) ;) })) (expression_statement "*(undefined4 *)((int)puVar11 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar11 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar11 + 4)" * (cast_expression "(undefined4 *)((int)puVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 4)" ( (binary_expression "(int)puVar11 + 4" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (labeled_statement "LAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }" statement_identifier : (if_statement "if (iStack_14c == *piVar15) {\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_14c == *piVar15)" ( (binary_expression "iStack_14c == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) }))) (expression_statement "pcVar21 = *(code **)(pcVar21 + 0x8408c);" (assignment_expression "pcVar21 = *(code **)(pcVar21 + 0x8408c)" identifier = (pointer_expression "*(code **)(pcVar21 + 0x8408c)" * (cast_expression "(code **)(pcVar21 + 0x8408c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x8408c)" ( (binary_expression "pcVar21 + 0x8408c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iStack_14c;" (assignment_expression "iVar5 = iStack_14c" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * 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 **)(pcVar21 + 0x83e84))();" (assignment_expression "iVar6 = (**(code **)(pcVar21 + 0x83e84))()" identifier = (call_expression "(**(code **)(pcVar21 + 0x83e84))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x83e84))" ( (pointer_expression "**(code **)(pcVar21 + 0x83e84)" * (pointer_expression "*(code **)(pcVar21 + 0x83e84)" * (cast_expression "(code **)(pcVar21 + 0x83e84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x83e84)" ( (binary_expression "pcVar21 + 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 IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (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 = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }) (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 = LIT) ;) }))))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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 = 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) ;) (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_retr(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  char **ppcVar4;\n  int iVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  undefined4 uVar12;\n  char **ppcVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined8 uVar23;\n  char *pcStack_150;\n  int iStack_14c;\n  int iStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  int iStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  int iStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  undefined4 uStack_68;\n  byte *local_30;\n  char *local_18;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);\n  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);\n  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar13 = ppcVar4;\n  iVar6 = fd_write(param_1);\n  if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }\n  iVar6 = local_14;\n  puVar20 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar20 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar14 = 0;\n  ppcStack_70 = ppcVar4;\n  uStack_68 = param_1;\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }\n  iVar17 = *(int *)(puStack_90 + -0x7c70);\n  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);\n  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }\n  pcVar21 = *(code **)(puStack_90 + -0x785c);\n  pcVar22 = ftp_syst;\n  pcVar10 = pcStack_74;\n  (*pcVar21)();\n  pcStack_d8 = pcVar21 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar21 + 0x84598);\n  iStack_cc = *piVar15;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar14;\n  iStack_c0 = iVar6;\n  iStack_bc = iVar17 + -0x6ee0;\n  iStack_b8 = iVar18;\n  ppcStack_b4 = ppcVar13;\n  uStack_b0 = uVar19;\n  pcStack_ac = pcVar22;\n  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);\n  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar13 = ppcVar7;\n  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar22 = ftp_pwd;\n  iVar6 = iStack_cc;\n  (*pcVar21)();\n  pcStack_118 = pcVar21 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar21 + 0x84298);\n  iStack_10c = *piVar16;\n  iStack_104 = iVar5;\n  piStack_100 = piVar15;\n  pcStack_fc = pcVar10;\n  puStack_f8 = puVar8;\n  pcStack_f4 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);\n  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_118 + -0x785c);\n  pcVar22 = ftp_size;\n  iVar14 = iStack_10c;\n  (*pcVar21)();\n  piVar15 = *(int **)(pcVar21 + 0x840f4);\n  iStack_14c = *piVar15;\n  iStack_148 = iVar5;\n  piStack_144 = piVar16;\n  iStack_140 = iVar6;\n  ppcStack_13c = ppcVar13;\n  ppcStack_138 = ppcVar4;\n  pcStack_134 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);\n  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);\n  iVar5 = fd_write(iVar14,uVar19,uVar12);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcVar21 + 0x8408c);\n  iVar5 = iStack_14c;\n  (*pcVar21)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar21 + 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_retr(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" (identifier "ftp_retr") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  char **ppcVar4;\n  int iVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  undefined4 uVar12;\n  char **ppcVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  code *pcVar22;\n  undefined8 uVar23;\n  char *pcStack_150;\n  int iStack_14c;\n  int iStack_148;\n  int *piStack_144;\n  int iStack_140;\n  char **ppcStack_13c;\n  char **ppcStack_138;\n  code *pcStack_134;\n  undefined8 uStack_120;\n  code *pcStack_118;\n  char *pcStack_110;\n  int iStack_10c;\n  int iStack_104;\n  int *piStack_100;\n  char *pcStack_fc;\n  undefined4 *puStack_f8;\n  code *pcStack_f4;\n  undefined8 uStack_e0;\n  code *pcStack_d8;\n  char *pcStack_d0;\n  int iStack_cc;\n  char **ppcStack_c8;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  char **ppcStack_b4;\n  undefined4 uStack_b0;\n  code *pcStack_ac;\n  undefined8 uStack_98;\n  undefined *puStack_90;\n  int iStack_84;\n  undefined4 *puStack_80;\n  byte *pbStack_7c;\n  char *pcStack_78;\n  char *pcStack_74;\n  char **ppcStack_70;\n  undefined *puStack_6c;\n  undefined4 uStack_68;\n  byte *local_30;\n  char *local_18;\n  int local_14;\n  \n  puVar2 = PTR___stack_chk_guard_000afc3c;\n  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;\n  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);\n  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);\n  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);\n  ppcVar13 = ppcVar4;\n  iVar6 = fd_write(param_1);\n  if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }\n  if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }\n  iVar6 = local_14;\n  puVar20 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  puStack_90 = puVar20 + 0x8c004;\n  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);\n  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);\n  puStack_6c = puVar2;\n  pbStack_7c = local_30;\n  pcStack_74 = (char *)*puStack_80;\n  *local_30 = 0;\n  iVar14 = 0;\n  ppcStack_70 = ppcVar4;\n  uStack_68 = param_1;\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }\n  iVar17 = *(int *)(puStack_90 + -0x7c70);\n  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);\n  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);\n  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);\nLAB_0002b57c:\n  if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }\n  pcVar21 = *(code **)(puStack_90 + -0x785c);\n  pcVar22 = ftp_syst;\n  pcVar10 = pcStack_74;\n  (*pcVar21)();\n  pcStack_d8 = pcVar21 + 0x8bd8c;\n  piVar15 = *(int **)(pcVar21 + 0x84598);\n  iStack_cc = *piVar15;\n  ppcStack_c8 = ppcVar7;\n  iStack_c4 = iVar14;\n  iStack_c0 = iVar6;\n  iStack_bc = iVar17 + -0x6ee0;\n  iStack_b8 = iVar18;\n  ppcStack_b4 = ppcVar13;\n  uStack_b0 = uVar19;\n  pcStack_ac = pcVar22;\n  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);\n  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);\n  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);\n  ppcVar13 = ppcVar7;\n  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }\n  if (iStack_cc == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_d8 + -0x785c);\n  pcVar22 = ftp_pwd;\n  iVar6 = iStack_cc;\n  (*pcVar21)();\n  pcStack_118 = pcVar21 + 0x8ba8c;\n  piVar16 = *(int **)(pcVar21 + 0x84298);\n  iStack_10c = *piVar16;\n  iStack_104 = iVar5;\n  piStack_100 = piVar15;\n  pcStack_fc = pcVar10;\n  puStack_f8 = puVar8;\n  pcStack_f4 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);\n  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);\n  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);\n  iVar5 = fd_write(iVar6,uVar19);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }\nLAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcStack_118 + -0x785c);\n  pcVar22 = ftp_size;\n  iVar14 = iStack_10c;\n  (*pcVar21)();\n  piVar15 = *(int **)(pcVar21 + 0x840f4);\n  iStack_14c = *piVar15;\n  iStack_148 = iVar5;\n  piStack_144 = piVar16;\n  iStack_140 = iVar6;\n  ppcStack_13c = ppcVar13;\n  ppcStack_138 = ppcVar4;\n  pcStack_134 = pcVar22;\n  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);\n  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);\n  iVar5 = fd_write(iVar14,uVar19,uVar12);\n  if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\nLAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }\n  pcVar21 = *(code **)(pcVar21 + 0x8408c);\n  iVar5 = iStack_14c;\n  (*pcVar21)();\n  if (iVar5 == 0) {\n    return 0x49;\n  }\n  iVar6 = (**(code **)(pcVar21 + 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 "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "char **ppcVar4;" (primitive_type "char") (pointer_declarator "**ppcVar4" (* "*") (pointer_declarator "*ppcVar4" (* "*") (identifier "ppcVar4"))) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char **ppcVar7;" (primitive_type "char") (pointer_declarator "**ppcVar7" (* "*") (pointer_declarator "*ppcVar7" (* "*") (identifier "ppcVar7"))) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined8 *puVar11;" (type_identifier "undefined8") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "char **ppcVar13;" (primitive_type "char") (pointer_declarator "**ppcVar13" (* "*") (pointer_declarator "*ppcVar13" (* "*") (identifier "ppcVar13"))) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined4 uVar19;" (type_identifier "undefined4") (identifier "uVar19") (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "code *pcVar21;" (type_identifier "code") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "undefined8 uVar23;" (type_identifier "undefined8") (identifier "uVar23") (; ";")) (declaration "char *pcStack_150;" (primitive_type "char") (pointer_declarator "*pcStack_150" (* "*") (identifier "pcStack_150")) (; ";")) (declaration "int iStack_14c;" (primitive_type "int") (identifier "iStack_14c") (; ";")) (declaration "int iStack_148;" (primitive_type "int") (identifier "iStack_148") (; ";")) (declaration "int *piStack_144;" (primitive_type "int") (pointer_declarator "*piStack_144" (* "*") (identifier "piStack_144")) (; ";")) (declaration "int iStack_140;" (primitive_type "int") (identifier "iStack_140") (; ";")) (declaration "char **ppcStack_13c;" (primitive_type "char") (pointer_declarator "**ppcStack_13c" (* "*") (pointer_declarator "*ppcStack_13c" (* "*") (identifier "ppcStack_13c"))) (; ";")) (declaration "char **ppcStack_138;" (primitive_type "char") (pointer_declarator "**ppcStack_138" (* "*") (pointer_declarator "*ppcStack_138" (* "*") (identifier "ppcStack_138"))) (; ";")) (declaration "code *pcStack_134;" (type_identifier "code") (pointer_declarator "*pcStack_134" (* "*") (identifier "pcStack_134")) (; ";")) (declaration "undefined8 uStack_120;" (type_identifier "undefined8") (identifier "uStack_120") (; ";")) (declaration "code *pcStack_118;" (type_identifier "code") (pointer_declarator "*pcStack_118" (* "*") (identifier "pcStack_118")) (; ";")) (declaration "char *pcStack_110;" (primitive_type "char") (pointer_declarator "*pcStack_110" (* "*") (identifier "pcStack_110")) (; ";")) (declaration "int iStack_10c;" (primitive_type "int") (identifier "iStack_10c") (; ";")) (declaration "int iStack_104;" (primitive_type "int") (identifier "iStack_104") (; ";")) (declaration "int *piStack_100;" (primitive_type "int") (pointer_declarator "*piStack_100" (* "*") (identifier "piStack_100")) (; ";")) (declaration "char *pcStack_fc;" (primitive_type "char") (pointer_declarator "*pcStack_fc" (* "*") (identifier "pcStack_fc")) (; ";")) (declaration "undefined4 *puStack_f8;" (type_identifier "undefined4") (pointer_declarator "*puStack_f8" (* "*") (identifier "puStack_f8")) (; ";")) (declaration "code *pcStack_f4;" (type_identifier "code") (pointer_declarator "*pcStack_f4" (* "*") (identifier "pcStack_f4")) (; ";")) (declaration "undefined8 uStack_e0;" (type_identifier "undefined8") (identifier "uStack_e0") (; ";")) (declaration "code *pcStack_d8;" (type_identifier "code") (pointer_declarator "*pcStack_d8" (* "*") (identifier "pcStack_d8")) (; ";")) (declaration "char *pcStack_d0;" (primitive_type "char") (pointer_declarator "*pcStack_d0" (* "*") (identifier "pcStack_d0")) (; ";")) (declaration "int iStack_cc;" (primitive_type "int") (identifier "iStack_cc") (; ";")) (declaration "char **ppcStack_c8;" (primitive_type "char") (pointer_declarator "**ppcStack_c8" (* "*") (pointer_declarator "*ppcStack_c8" (* "*") (identifier "ppcStack_c8"))) (; ";")) (declaration "int iStack_c4;" (primitive_type "int") (identifier "iStack_c4") (; ";")) (declaration "int iStack_c0;" (primitive_type "int") (identifier "iStack_c0") (; ";")) (declaration "int iStack_bc;" (primitive_type "int") (identifier "iStack_bc") (; ";")) (declaration "int iStack_b8;" (primitive_type "int") (identifier "iStack_b8") (; ";")) (declaration "char **ppcStack_b4;" (primitive_type "char") (pointer_declarator "**ppcStack_b4" (* "*") (pointer_declarator "*ppcStack_b4" (* "*") (identifier "ppcStack_b4"))) (; ";")) (declaration "undefined4 uStack_b0;" (type_identifier "undefined4") (identifier "uStack_b0") (; ";")) (declaration "code *pcStack_ac;" (type_identifier "code") (pointer_declarator "*pcStack_ac" (* "*") (identifier "pcStack_ac")) (; ";")) (declaration "undefined8 uStack_98;" (type_identifier "undefined8") (identifier "uStack_98") (; ";")) (declaration "undefined *puStack_90;" (type_identifier "undefined") (pointer_declarator "*puStack_90" (* "*") (identifier "puStack_90")) (; ";")) (declaration "int iStack_84;" (primitive_type "int") (identifier "iStack_84") (; ";")) (declaration "undefined4 *puStack_80;" (type_identifier "undefined4") (pointer_declarator "*puStack_80" (* "*") (identifier "puStack_80")) (; ";")) (declaration "byte *pbStack_7c;" (type_identifier "byte") (pointer_declarator "*pbStack_7c" (* "*") (identifier "pbStack_7c")) (; ";")) (declaration "char *pcStack_78;" (primitive_type "char") (pointer_declarator "*pcStack_78" (* "*") (identifier "pcStack_78")) (; ";")) (declaration "char *pcStack_74;" (primitive_type "char") (pointer_declarator "*pcStack_74" (* "*") (identifier "pcStack_74")) (; ";")) (declaration "char **ppcStack_70;" (primitive_type "char") (pointer_declarator "**ppcStack_70" (* "*") (pointer_declarator "*ppcStack_70" (* "*") (identifier "ppcStack_70"))) (; ";")) (declaration "undefined *puStack_6c;" (type_identifier "undefined") (pointer_declarator "*puStack_6c" (* "*") (identifier "puStack_6c")) (; ";")) (declaration "undefined4 uStack_68;" (type_identifier "undefined4") (identifier "uStack_68") (; ";")) (declaration "byte *local_30;" (type_identifier "byte") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "char *local_18;" (primitive_type "char") (pointer_declarator "*local_18" (* "*") (identifier "local_18")) (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (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_14 = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000afc3c" (identifier "local_14") (= "=") (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")))) (; ";")) (expression_statement "ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);" (assignment_expression "ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0)" (identifier "ppcVar4") (= "=") (cast_expression "(char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0)" (identifier "FUN_00029120") (argument_list "(PTR_s_hallenge__000af46c + -0x15c0)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + -0x15c0" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0x15c0")) () ")"))))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);" (assignment_expression "iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_strlen_000afc68)(ppcVar4)" (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 "(ppcVar4)" (( "(") (identifier "ppcVar4") () ")")))) (; ";")) (expression_statement "uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);" (assignment_expression "uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8)" (identifier "uVar23") (= "=") (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 "ppcVar13 = ppcVar4;" (assignment_expression "ppcVar13 = ppcVar4" (identifier "ppcVar13") (= "=") (identifier "ppcVar4")) (; ";")) (expression_statement "iVar6 = fd_write(param_1);" (assignment_expression "iVar6 = fd_write(param_1)" (identifier "iVar6") (= "=") (call_expression "fd_write(param_1)" (identifier "fd_write") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) {\n    (*(code *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }\n  else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\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 *)PTR_free_000afd08)(ppcVar4);\n    iVar6 = 0x2c;\n  }" ({ "{") (expression_statement "(*(code *)PTR_free_000afd08)(ppcVar4);" (call_expression "(*(code *)PTR_free_000afd08)(ppcVar4)" (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 "(ppcVar4)" (( "(") (identifier "ppcVar4") () ")"))) (; ";")) (expression_statement "iVar6 = 0x2c;" (assignment_expression "iVar6 = 0x2c" (identifier "iVar6") (= "=") (number_literal "0x2c")) (; ";")) (} "}")) (else_clause "else {\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    ppcVar13 = &local_18;\n    iVar6 = ftp_response(param_1);\n    if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\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 "ppcVar13 = &local_18;" (assignment_expression "ppcVar13 = &local_18" (identifier "ppcVar13") (= "=") (pointer_expression "&local_18" (& "&") (identifier "local_18"))) (; ";")) (expression_statement "iVar6 = ftp_response(param_1);" (assignment_expression "iVar6 = ftp_response(param_1)" (identifier "iVar6") (= "=") (call_expression "ftp_response(param_1)" (identifier "ftp_response") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar6 == 7) {\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }" (if "if") (parenthesized_expression "(iVar6 == 7)" (( "(") (binary_expression "iVar6 == 7" (identifier "iVar6") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      ppcVar13 = (char **)0x31;\n      if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }\n    }" ({ "{") (expression_statement "ppcVar13 = (char **)0x31;" (assignment_expression "ppcVar13 = (char **)0x31" (identifier "ppcVar13") (= "=") (cast_expression "(char **)0x31" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x31"))) (; ";")) (if_statement "if (*local_18 == '5') {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\n      }\n      else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" (if "if") (parenthesized_expression "(*local_18 == '5')" (( "(") (binary_expression "*local_18 == '5'" (pointer_expression "*local_18" (* "*") (identifier "local_18")) (== "==") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xc;\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 "iVar6 = 0xc;" (assignment_expression "iVar6 = 0xc" (identifier "iVar6") (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" (else "else") (if_statement "if (*local_18 == '1') {\n        (*(code *)PTR_free_000afd08)();\n      }\n      else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" (if "if") (parenthesized_expression "(*local_18 == '1')" (( "(") (binary_expression "*local_18 == '1'" (pointer_expression "*local_18" (* "*") (identifier "local_18")) (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\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 "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_free_000afd08)();\n        iVar6 = 0xe;\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 "iVar6 = 0xe;" (assignment_expression "iVar6 = 0xe" (identifier "iVar6") (= "=") (number_literal "0xe")) (; ";")) (} "}")))))) (} "}"))) (} "}")))) (if_statement "if (local_14 == *(int *)puVar2) {\n    return iVar6;\n  }" (if "if") (parenthesized_expression "(local_14 == *(int *)puVar2)" (( "(") (binary_expression "local_14 == *(int *)puVar2" (identifier "local_14") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return iVar6;\n  }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "iVar6 = local_14;" (assignment_expression "iVar6 = local_14" (identifier "iVar6") (= "=") (identifier "local_14")) (; ";")) (expression_statement "puVar20 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000afbd4" (identifier "puVar20") (= "=") (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_90 = puVar20 + 0x8c004;" (assignment_expression "puStack_90 = puVar20 + 0x8c004" (identifier "puStack_90") (= "=") (binary_expression "puVar20 + 0x8c004" (identifier "puVar20") (+ "+") (number_literal "0x8c004"))) (; ";")) (expression_statement "puStack_80 = *(undefined4 **)(puVar20 + 0x84810);" (assignment_expression "puStack_80 = *(undefined4 **)(puVar20 + 0x84810)" (identifier "puStack_80") (= "=") (pointer_expression "*(undefined4 **)(puVar20 + 0x84810)" (* "*") (cast_expression "(undefined4 **)(puVar20 + 0x84810)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x84810)" (( "(") (binary_expression "puVar20 + 0x84810" (identifier "puVar20") (+ "+") (number_literal "0x84810")) () ")"))))) (; ";")) (expression_statement "local_30 = (byte *)((ulonglong)uVar23 >> 0x20);" (assignment_expression "local_30 = (byte *)((ulonglong)uVar23 >> 0x20)" (identifier "local_30") (= "=") (cast_expression "(byte *)((ulonglong)uVar23 >> 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar23 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar23 >> 0x20" (cast_expression "(ulonglong)uVar23" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar23")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "puStack_6c = puVar2;" (assignment_expression "puStack_6c = puVar2" (identifier "puStack_6c") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "pbStack_7c = local_30;" (assignment_expression "pbStack_7c = local_30" (identifier "pbStack_7c") (= "=") (identifier "local_30")) (; ";")) (expression_statement "pcStack_74 = (char *)*puStack_80;" (assignment_expression "pcStack_74 = (char *)*puStack_80" (identifier "pcStack_74") (= "=") (cast_expression "(char *)*puStack_80" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puStack_80" (* "*") (identifier "puStack_80")))) (; ";")) (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppcStack_70 = ppcVar4;" (assignment_expression "ppcStack_70 = ppcVar4" (identifier "ppcStack_70") (= "=") (identifier "ppcVar4")) (; ";")) (expression_statement "uStack_68 = param_1;" (assignment_expression "uStack_68 = param_1" (identifier "uStack_68") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (iVar5 == 0) {\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }\n  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;" (assignment_expression "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0" (identifier "iVar5") (= "=") (binary_expression "*(int *)(puVar20 + 0x84040) + -0x15b0" (pointer_expression "*(int *)(puVar20 + 0x84040)" (* "*") (cast_expression "(int *)(puVar20 + 0x84040)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x84040)" (( "(") (binary_expression "puVar20 + 0x84040" (identifier "puVar20") (+ "+") (number_literal "0x84040")) () ")")))) (+ "+") (number_literal "-0x15b0"))) (; ";")) (} "}")) (else_clause "else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" (else "else") (if_statement "if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }\n  else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b)" (* "*") (cast_expression "(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar20 + 0x8405c) + 0x16b)" (( "(") (binary_expression "*(int *)(puVar20 + 0x8405c) + 0x16b" (pointer_expression "*(int *)(puVar20 + 0x8405c)" (* "*") (cast_expression "(int *)(puVar20 + 0x8405c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x8405c)" (( "(") (binary_expression "puVar20 + 0x8405c" (identifier "puVar20") (+ "+") (number_literal "0x8405c")) () ")")))) (+ "+") (number_literal "0x16b")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar14 = 1;\n    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;\n  }" ({ "{") (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" (identifier "iVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8" (identifier "iVar5") (= "=") (binary_expression "*(int *)(puVar20 + 0x84040) + -0x15b8" (pointer_expression "*(int *)(puVar20 + 0x84040)" (* "*") (cast_expression "(int *)(puVar20 + 0x84040)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x84040)" (( "(") (binary_expression "puVar20 + 0x84040" (identifier "puVar20") (+ "+") (number_literal "0x84040")) () ")")))) (+ "+") (number_literal "-0x15b8"))) (; ";")) (} "}")) (else_clause "else {\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" (else "else") (compound_statement "{\n    iVar14 = 1;\n    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);\n    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;\n  }" ({ "{") (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" (identifier "iVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);" (call_expression "debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8)" (identifier "debug_logprintf") (argument_list "(*(int *)(puVar20 + 0x84040) + -0x15a8)" (( "(") (binary_expression "*(int *)(puVar20 + 0x84040) + -0x15a8" (pointer_expression "*(int *)(puVar20 + 0x84040)" (* "*") (cast_expression "(int *)(puVar20 + 0x84040)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x84040)" (( "(") (binary_expression "puVar20 + 0x84040" (identifier "puVar20") (+ "+") (number_literal "0x84040")) () ")")))) (+ "+") (number_literal "-0x15a8")) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8" (identifier "iVar5") (= "=") (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" (* "*") (cast_expression "(int *)(puStack_90 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_90 + -0x7fc4)" (( "(") (binary_expression "puStack_90 + -0x7fc4" (identifier "puStack_90") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x15b8"))) (; ";")) (} "}")))))) (expression_statement "iVar17 = *(int *)(puStack_90 + -0x7c70);" (assignment_expression "iVar17 = *(int *)(puStack_90 + -0x7c70)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puStack_90 + -0x7c70)" (* "*") (cast_expression "(int *)(puStack_90 + -0x7c70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_90 + -0x7c70)" (( "(") (binary_expression "puStack_90 + -0x7c70" (identifier "puStack_90") (+ "+") (number_literal "-0x7c70")) () ")"))))) (; ";")) (expression_statement "uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);" (assignment_expression "uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" (identifier "uVar23") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_90 + -0x7fc8) + 0x40b8)" (( "(") (binary_expression "*(int *)(puStack_90 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_90 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_90 + -0x7fc8)" (( "(") (binary_expression "puStack_90 + -0x7fc8" (identifier "puStack_90") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);" (assignment_expression "uVar19 = *(undefined4 *)(puStack_90 + -0x7d38)" (identifier "uVar19") (= "=") (pointer_expression "*(undefined4 *)(puStack_90 + -0x7d38)" (* "*") (cast_expression "(undefined4 *)(puStack_90 + -0x7d38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_90 + -0x7d38)" (( "(") (binary_expression "puStack_90 + -0x7d38" (identifier "puStack_90") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;" (assignment_expression "iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8" (identifier "iVar18") (= "=") (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x15b8" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" (* "*") (cast_expression "(int *)(puStack_90 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_90 + -0x7fc4)" (( "(") (binary_expression "puStack_90 + -0x7fc4" (identifier "puStack_90") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x15b8"))) (; ";")) (do_statement "do {\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  } while (ppcVar7 == (char **)&DAT_00000001);" (do "do") (compound_statement "{\n    while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }\n    if (param_4 != 0) {\nLAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }\n    iVar14 = 1;\n  }" ({ "{") (while_statement "while( true ) {\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);\n      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);\n      ppcVar4 = ppcVar7;\n      uStack_98 = uVar23;\n      iVar5 = fd_write(iVar6);\n      if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }\n      ppcVar7 = (char **)(iVar14 + 1);\n      (**(code **)(puStack_90 + -0x7728))();\n      ppcVar4 = &pcStack_78;\n      iVar9 = ftp_response(iVar6);\n      iVar5 = iVar18;\n      if (iVar9 != 7) break;\n      ppcVar4 = (char **)0x31;\n      if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }\n      iStack_84 = iVar9;\n      (**(code **)(puStack_90 + -0x7728))();\n      pcStack_78 = (char *)0x0;\n      iVar9 = iStack_84;\n      if (param_4 != 0) goto LAB_0002b570;\n      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;\n    }" ({ "{") (expression_statement "ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);" (assignment_expression "ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13)" (identifier "ppcVar7") (= "=") (cast_expression "(char **)FUN_00029120(iVar5,ppcVar13)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00029120(iVar5,ppcVar13)" (identifier "FUN_00029120") (argument_list "(iVar5,ppcVar13)" (( "(") (identifier "iVar5") (, ",") (identifier "ppcVar13") () ")"))))) (; ";")) (expression_statement "puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puStack_90 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(puStack_90 + -0x77c8))" (( "(") (pointer_expression "**(code **)(puStack_90 + -0x77c8)" (* "*") (pointer_expression "*(code **)(puStack_90 + -0x77c8)" (* "*") (cast_expression "(code **)(puStack_90 + -0x77c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_90 + -0x77c8)" (( "(") (binary_expression "puStack_90 + -0x77c8" (identifier "puStack_90") (+ "+") (number_literal "-0x77c8")) () ")"))))) () ")")) (argument_list "(ppcVar7)" (( "(") (identifier "ppcVar7") () ")"))))) (; ";")) (expression_statement "ppcVar4 = ppcVar7;" (assignment_expression "ppcVar4 = ppcVar7" (identifier "ppcVar4") (= "=") (identifier "ppcVar7")) (; ";")) (expression_statement "uStack_98 = uVar23;" (assignment_expression "uStack_98 = uVar23" (identifier "uStack_98") (= "=") (identifier "uVar23")) (; ";")) (expression_statement "iVar5 = fd_write(iVar6);" (assignment_expression "iVar5 = fd_write(iVar6)" (identifier "iVar5") (= "=") (call_expression "fd_write(iVar6)" (identifier "fd_write") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n        (**(code **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 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 **)(puStack_90 + -0x7728))(ppcVar7);\n        iVar9 = 0x2c;\n        goto LAB_0002b57c;\n      }" ({ "{") (expression_statement "(**(code **)(puStack_90 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(puStack_90 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" (( "(") (pointer_expression "**(code **)(puStack_90 + -0x7728)" (* "*") (pointer_expression "*(code **)(puStack_90 + -0x7728)" (* "*") (cast_expression "(code **)(puStack_90 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_90 + -0x7728)" (( "(") (binary_expression "puStack_90 + -0x7728" (identifier "puStack_90") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(ppcVar7)" (( "(") (identifier "ppcVar7") () ")"))) (; ";")) (expression_statement "iVar9 = 0x2c;" (assignment_expression "iVar9 = 0x2c" (identifier "iVar9") (= "=") (number_literal "0x2c")) (; ";")) (goto_statement "goto LAB_0002b57c;" (goto "goto") (statement_identifier "LAB_0002b57c") (; ";")) (} "}"))) (expression_statement "ppcVar7 = (char **)(iVar14 + 1);" (assignment_expression "ppcVar7 = (char **)(iVar14 + 1)" (identifier "ppcVar7") (= "=") (cast_expression "(char **)(iVar14 + 1)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 1)" (( "(") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_90 + -0x7728))();" (call_expression "(**(code **)(puStack_90 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" (( "(") (pointer_expression "**(code **)(puStack_90 + -0x7728)" (* "*") (pointer_expression "*(code **)(puStack_90 + -0x7728)" (* "*") (cast_expression "(code **)(puStack_90 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_90 + -0x7728)" (( "(") (binary_expression "puStack_90 + -0x7728" (identifier "puStack_90") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppcVar4 = &pcStack_78;" (assignment_expression "ppcVar4 = &pcStack_78" (identifier "ppcVar4") (= "=") (pointer_expression "&pcStack_78" (& "&") (identifier "pcStack_78"))) (; ";")) (expression_statement "iVar9 = ftp_response(iVar6);" (assignment_expression "iVar9 = ftp_response(iVar6)" (identifier "iVar9") (= "=") (call_expression "ftp_response(iVar6)" (identifier "ftp_response") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "iVar5 = iVar18;" (assignment_expression "iVar5 = iVar18" (identifier "iVar5") (= "=") (identifier "iVar18")) (; ";")) (if_statement "if (iVar9 != 7) break;" (if "if") (parenthesized_expression "(iVar9 != 7)" (( "(") (binary_expression "iVar9 != 7" (identifier "iVar9") (!= "!=") (number_literal "7")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppcVar4 = (char **)0x31;" (assignment_expression "ppcVar4 = (char **)0x31" (identifier "ppcVar4") (= "=") (cast_expression "(char **)0x31" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x31"))) (; ";")) (if_statement "if (*pcStack_78 == '5') {\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }\n      else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" (if "if") (parenthesized_expression "(*pcStack_78 == '5')" (( "(") (binary_expression "*pcStack_78 == '5'" (pointer_expression "*pcStack_78" (* "*") (identifier "pcStack_78")) (== "==") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        iVar14 = 0;\n        iVar9 = 0xc;\n      }" ({ "{") (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" (identifier "iVar9") (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" (else "else") (if_statement "if (*pcStack_78 == '1') {\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }\n      else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" (if "if") (parenthesized_expression "(*pcStack_78 == '1')" (( "(") (binary_expression "*pcStack_78 == '1'" (pointer_expression "*pcStack_78" (* "*") (identifier "pcStack_78")) (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (compound_statement "{\n        *pbStack_7c = (byte)iVar14 ^ 1;\n        iVar14 = 1;\n      }" ({ "{") (expression_statement "*pbStack_7c = (byte)iVar14 ^ 1;" (assignment_expression "*pbStack_7c = (byte)iVar14 ^ 1" (pointer_expression "*pbStack_7c" (* "*") (identifier "pbStack_7c")) (= "=") (binary_expression "(byte)iVar14 ^ 1" (cast_expression "(byte)iVar14" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar14")) (^ "^") (number_literal "1"))) (; ";")) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" (identifier "iVar14") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" (else "else") (compound_statement "{\n        iVar14 = 0;\n        iVar9 = 0xe;\n      }" ({ "{") (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0xe;" (assignment_expression "iVar9 = 0xe" (identifier "iVar9") (= "=") (number_literal "0xe")) (; ";")) (} "}")))))) (expression_statement "iStack_84 = iVar9;" (assignment_expression "iStack_84 = iVar9" (identifier "iStack_84") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "(**(code **)(puStack_90 + -0x7728))();" (call_expression "(**(code **)(puStack_90 + -0x7728))()" (parenthesized_expression "(**(code **)(puStack_90 + -0x7728))" (( "(") (pointer_expression "**(code **)(puStack_90 + -0x7728)" (* "*") (pointer_expression "*(code **)(puStack_90 + -0x7728)" (* "*") (cast_expression "(code **)(puStack_90 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_90 + -0x7728)" (( "(") (binary_expression "puStack_90 + -0x7728" (identifier "puStack_90") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_78 = (char *)0x0;" (assignment_expression "pcStack_78 = (char *)0x0" (identifier "pcStack_78") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar9 = iStack_84;" (assignment_expression "iVar9 = iStack_84" (identifier "iVar9") (= "=") (identifier "iStack_84")) (; ";")) (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 ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))\n      goto LAB_0002b57c;" (if "if") (parenthesized_expression "((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))" (( "(") (binary_expression "(ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1)" (parenthesized_expression "(ppcVar7 != (char **)&DAT_00000001)" (( "(") (binary_expression "ppcVar7 != (char **)&DAT_00000001" (identifier "ppcVar7") (!= "!=") (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 = iVar14 != 0, iVar14 = 1, bVar1)" (( "(") (comma_expression "bVar1 = iVar14 != 0, iVar14 = 1, bVar1" (assignment_expression "bVar1 = iVar14 != 0" (identifier "bVar1") (= "=") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0"))) (, ",") (comma_expression "iVar14 = 1, bVar1" (assignment_expression "iVar14 = 1" (identifier "iVar14") (= "=") (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 ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\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 ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }\n      break;\n    }" ({ "{") (labeled_statement "LAB_0002b570:\n      if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }" (statement_identifier "LAB_0002b570") (: ":") (if_statement "if ((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }" (if "if") (parenthesized_expression "((ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'))" (( "(") (binary_expression "(ppcVar7 == (char **)&DAT_00000001) &&\n         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')" (parenthesized_expression "(ppcVar7 == (char **)&DAT_00000001)" (( "(") (binary_expression "ppcVar7 == (char **)&DAT_00000001" (identifier "ppcVar7") (== "==") (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 *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0'" (pointer_expression "*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" (* "*") (cast_expression "(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_90 + -0x7fa8) + 0x16b)" (( "(") (binary_expression "*(int *)(puStack_90 + -0x7fa8) + 0x16b" (pointer_expression "*(int *)(puStack_90 + -0x7fa8)" (* "*") (cast_expression "(int *)(puStack_90 + -0x7fa8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_90 + -0x7fa8)" (( "(") (binary_expression "puStack_90 + -0x7fa8" (identifier "puStack_90") (+ "+") (number_literal "-0x7fa8")) () ")")))) (+ "+") (number_literal "0x16b")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        iStack_84 = iVar9;\n        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);\n        iVar9 = iStack_84;\n      }" ({ "{") (expression_statement "iStack_84 = iVar9;" (assignment_expression "iStack_84 = iVar9" (identifier "iStack_84") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);" (call_expression "debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590)" (identifier "debug_logprintf") (argument_list "(*(int *)(puStack_90 + -0x7fc4) + -0x1590)" (( "(") (binary_expression "*(int *)(puStack_90 + -0x7fc4) + -0x1590" (pointer_expression "*(int *)(puStack_90 + -0x7fc4)" (* "*") (cast_expression "(int *)(puStack_90 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_90 + -0x7fc4)" (( "(") (binary_expression "puStack_90 + -0x7fc4" (identifier "puStack_90") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1590")) () ")"))) (; ";")) (expression_statement "iVar9 = iStack_84;" (assignment_expression "iVar9 = iStack_84" (identifier "iVar9") (= "=") (identifier "iStack_84")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" (identifier "iVar14") (= "=") (number_literal "1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppcVar7 == (char **)&DAT_00000001)" (( "(") (binary_expression "ppcVar7 == (char **)&DAT_00000001" (identifier "ppcVar7") (== "==") (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_74 == (char *)*puStack_80) {\n    return iVar9;\n  }" (statement_identifier "LAB_0002b57c") (: ":") (if_statement "if (pcStack_74 == (char *)*puStack_80) {\n    return iVar9;\n  }" (if "if") (parenthesized_expression "(pcStack_74 == (char *)*puStack_80)" (( "(") (binary_expression "pcStack_74 == (char *)*puStack_80" (identifier "pcStack_74") (== "==") (cast_expression "(char *)*puStack_80" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puStack_80" (* "*") (identifier "puStack_80")))) () ")")) (compound_statement "{\n    return iVar9;\n  }" ({ "{") (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}")))) (expression_statement "pcVar21 = *(code **)(puStack_90 + -0x785c);" (assignment_expression "pcVar21 = *(code **)(puStack_90 + -0x785c)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(puStack_90 + -0x785c)" (* "*") (cast_expression "(code **)(puStack_90 + -0x785c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_90 + -0x785c)" (( "(") (binary_expression "puStack_90 + -0x785c" (identifier "puStack_90") (+ "+") (number_literal "-0x785c")) () ")"))))) (; ";")) (expression_statement "pcVar22 = ftp_syst;" (assignment_expression "pcVar22 = ftp_syst" (identifier "pcVar22") (= "=") (identifier "ftp_syst")) (; ";")) (expression_statement "pcVar10 = pcStack_74;" (assignment_expression "pcVar10 = pcStack_74" (identifier "pcVar10") (= "=") (identifier "pcStack_74")) (; ";")) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_d8 = pcVar21 + 0x8bd8c;" (assignment_expression "pcStack_d8 = pcVar21 + 0x8bd8c" (identifier "pcStack_d8") (= "=") (binary_expression "pcVar21 + 0x8bd8c" (identifier "pcVar21") (+ "+") (number_literal "0x8bd8c"))) (; ";")) (expression_statement "piVar15 = *(int **)(pcVar21 + 0x84598);" (assignment_expression "piVar15 = *(int **)(pcVar21 + 0x84598)" (identifier "piVar15") (= "=") (pointer_expression "*(int **)(pcVar21 + 0x84598)" (* "*") (cast_expression "(int **)(pcVar21 + 0x84598)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x84598)" (( "(") (binary_expression "pcVar21 + 0x84598" (identifier "pcVar21") (+ "+") (number_literal "0x84598")) () ")"))))) (; ";")) (expression_statement "iStack_cc = *piVar15;" (assignment_expression "iStack_cc = *piVar15" (identifier "iStack_cc") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (expression_statement "ppcStack_c8 = ppcVar7;" (assignment_expression "ppcStack_c8 = ppcVar7" (identifier "ppcStack_c8") (= "=") (identifier "ppcVar7")) (; ";")) (expression_statement "iStack_c4 = iVar14;" (assignment_expression "iStack_c4 = iVar14" (identifier "iStack_c4") (= "=") (identifier "iVar14")) (; ";")) (expression_statement "iStack_c0 = iVar6;" (assignment_expression "iStack_c0 = iVar6" (identifier "iStack_c0") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iStack_bc = iVar17 + -0x6ee0;" (assignment_expression "iStack_bc = iVar17 + -0x6ee0" (identifier "iStack_bc") (= "=") (binary_expression "iVar17 + -0x6ee0" (identifier "iVar17") (+ "+") (number_literal "-0x6ee0"))) (; ";")) (expression_statement "iStack_b8 = iVar18;" (assignment_expression "iStack_b8 = iVar18" (identifier "iStack_b8") (= "=") (identifier "iVar18")) (; ";")) (expression_statement "ppcStack_b4 = ppcVar13;" (assignment_expression "ppcStack_b4 = ppcVar13" (identifier "ppcStack_b4") (= "=") (identifier "ppcVar13")) (; ";")) (expression_statement "uStack_b0 = uVar19;" (assignment_expression "uStack_b0 = uVar19" (identifier "uStack_b0") (= "=") (identifier "uVar19")) (; ";")) (expression_statement "pcStack_ac = pcVar22;" (assignment_expression "pcStack_ac = pcVar22" (identifier "pcStack_ac") (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);" (assignment_expression "ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" (identifier "ppcVar7") (= "=") (cast_expression "(char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" (identifier "FUN_00029120") (argument_list "(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0)" (( "(") (binary_expression "*(int *)(pcVar21 + 0x83dc8) + -0x157c" (pointer_expression "*(int *)(pcVar21 + 0x83dc8)" (* "*") (cast_expression "(int *)(pcVar21 + 0x83dc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x83dc8)" (( "(") (binary_expression "pcVar21 + 0x83dc8" (identifier "pcVar21") (+ "+") (number_literal "0x83dc8")) () ")")))) (+ "+") (number_literal "-0x157c")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);" (assignment_expression "uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x77c8))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x77c8))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x77c8)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x77c8)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x77c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x77c8)" (( "(") (binary_expression "pcStack_d8 + -0x77c8" (identifier "pcStack_d8") (+ "+") (number_literal "-0x77c8")) () ")"))))) () ")")) (argument_list "(ppcVar7)" (( "(") (identifier "ppcVar7") () ")")))) (; ";")) (expression_statement "uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" (identifier "uStack_e0") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc8)" (( "(") (binary_expression "pcStack_d8 + -0x7fc8" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "ppcVar13 = ppcVar7;" (assignment_expression "ppcVar13 = ppcVar7" (identifier "ppcVar13") (= "=") (identifier "ppcVar7")) (; ";")) (expression_statement "iVar5 = fd_write(pcVar10,ppcVar7,uVar19);" (assignment_expression "iVar5 = fd_write(pcVar10,ppcVar7,uVar19)" (identifier "iVar5") (= "=") (call_expression "fd_write(pcVar10,ppcVar7,uVar19)" (identifier "fd_write") (argument_list "(pcVar10,ppcVar7,uVar19)" (( "(") (identifier "pcVar10") (, ",") (identifier "ppcVar7") (, ",") (identifier "uVar19") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);\n  }\n  else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\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_d8 + -0x7728))(ppcVar7);\n  }" ({ "{") (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(ppcVar7);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(ppcVar7)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7728)" (( "(") (binary_expression "pcStack_d8 + -0x7728" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(ppcVar7)" (( "(") (identifier "ppcVar7") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_d8 + -0x7728))();\n    ppcVar13 = &pcStack_d0;\n    iVar5 = ftp_response(pcVar10);\n    pcVar3 = pcStack_d0;\n    if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_d8 + -0x7728))();" (call_expression "(**(code **)(pcStack_d8 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7728)" (( "(") (binary_expression "pcStack_d8 + -0x7728" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppcVar13 = &pcStack_d0;" (assignment_expression "ppcVar13 = &pcStack_d0" (identifier "ppcVar13") (= "=") (pointer_expression "&pcStack_d0" (& "&") (identifier "pcStack_d0"))) (; ";")) (expression_statement "iVar5 = ftp_response(pcVar10);" (assignment_expression "iVar5 = ftp_response(pcVar10)" (identifier "iVar5") (= "=") (call_expression "ftp_response(pcVar10)" (identifier "ftp_response") (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")")))) (; ";")) (expression_statement "pcVar3 = pcStack_d0;" (assignment_expression "pcVar3 = pcStack_d0" (identifier "pcVar3") (= "=") (identifier "pcStack_d0")) (; ";")) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }\n    }" ({ "{") (if_statement "if (*pcStack_d0 == '5') {\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }\n      else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" (if "if") (parenthesized_expression "(*pcStack_d0 == '5')" (( "(") (binary_expression "*pcStack_d0 == '5'" (pointer_expression "*pcStack_d0" (* "*") (identifier "pcStack_d0")) (== "==") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        iVar5 = 0xf;\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n        pcVar10 = pcStack_d0;\n      }" ({ "{") (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" (identifier "iVar5") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7728)" (( "(") (binary_expression "pcStack_d8 + -0x7728" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(pcStack_d0)" (( "(") (identifier "pcStack_d0") () ")"))) (; ";")) (expression_statement "pcVar10 = pcStack_d0;" (assignment_expression "pcVar10 = pcStack_d0" (identifier "pcVar10") (= "=") (identifier "pcStack_d0")) (; ";")) (} "}")) (else_clause "else {\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" (else "else") (compound_statement "{\n        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);\n        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);\n        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);\n        ppcVar13 = (char **)(iVar6 + 0x4a48);\n        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);\n        *puVar8 = 2;\n        if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }\nLAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);\n        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);\n      }" ({ "{") (expression_statement "iVar6 = *(int *)(pcStack_d8 + -0x7fc8);" (assignment_expression "iVar6 = *(int *)(pcStack_d8 + -0x7fc8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcStack_d8 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc8)" (( "(") (binary_expression "pcStack_d8 + -0x7fc8" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc8")) () ")"))))) (; ";")) (expression_statement "uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);" (assignment_expression "uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x794c))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x794c))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x794c)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x794c)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x794c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x794c)" (( "(") (binary_expression "pcStack_d8 + -0x794c" (identifier "pcStack_d8") (+ "+") (number_literal "-0x794c")) () ")"))))) () ")")) (argument_list "(pcStack_d0)" (( "(") (identifier "pcStack_d0") () ")")))) (; ";")) (expression_statement "(**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);" (call_expression "(**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7888))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7888)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7888)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7888)" (( "(") (binary_expression "pcStack_d8 + -0x7888" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7888")) () ")"))))) () ")")) (argument_list "(pcVar3,iVar6 + 0x4a48)" (( "(") (identifier "pcVar3") (, ",") (binary_expression "iVar6 + 0x4a48" (identifier "iVar6") (+ "+") (number_literal "0x4a48")) () ")"))) (; ";")) (expression_statement "ppcVar13 = (char **)(iVar6 + 0x4a48);" (assignment_expression "ppcVar13 = (char **)(iVar6 + 0x4a48)" (identifier "ppcVar13") (= "=") (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 "pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);" (assignment_expression "pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0)" (identifier "pcVar10") (= "=") (cast_expression "(char *)(**(code **)(pcStack_d8 + -0x7888))(0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_d8 + -0x7888))(0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7888))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7888)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7888)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7888)" (( "(") (binary_expression "pcStack_d8 + -0x7888" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7888")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*puVar8 = 2;" (assignment_expression "*puVar8 = 2" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "2")) (; ";")) (if_statement "if (pcVar10 == (char *)0x0) {\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }\n        else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(pcVar10 == (char *)0x0)" (( "(") (binary_expression "pcVar10 == (char *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;\n        }" ({ "{") (labeled_statement "LAB_0002b8d8:\n          *ppcVar4 = (char *)0x5;" (statement_identifier "LAB_0002b8d8") (: ":") (expression_statement "*ppcVar4 = (char *)0x5;" (assignment_expression "*ppcVar4 = (char *)0x5" (pointer_expression "*ppcVar4" (* "*") (identifier "ppcVar4")) (= "=") (cast_expression "(char *)0x5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";"))) (} "}")) (else_clause "else {\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);\n          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n          if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }\n        }" ({ "{") (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" (identifier "ppcVar13") (= "=") (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1574" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc4)" (( "(") (binary_expression "pcStack_d8 + -0x7fc4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1574")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7e9c)" (( "(") (binary_expression "pcStack_d8 + -0x7e9c" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n            *ppcVar4 = (char *)0x1;\n          }\n          else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *ppcVar4 = (char *)0x1;\n          }" ({ "{") (expression_statement "*ppcVar4 = (char *)0x1;" (assignment_expression "*ppcVar4 = (char *)0x1" (pointer_expression "*ppcVar4" (* "*") (identifier "ppcVar4")) (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }" (else "else") (compound_statement "{\n            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);\n            if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }\n          }" ({ "{") (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))\n                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7e9c)" (( "(") (binary_expression "pcStack_d8 + -0x7e9c" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570)" (( "(") (identifier "pcVar10") (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1570" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc4)" (( "(") (binary_expression "pcStack_d8 + -0x7fc4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1570")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }\n            else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);\n              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);\n              *ppcVar4 = (char *)0x0;\n              ppcVar13 = (char **)(iVar6 + -0x1568);\n              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);\n              if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }\n            }" ({ "{") (expression_statement "iVar6 = *(int *)(pcStack_d8 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_d8 + -0x7fc4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc4)" (( "(") (binary_expression "pcStack_d8 + -0x7fc4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc4")) () ")"))))) (; ";")) (expression_statement "pcVar21 = *(code **)(pcStack_d8 + -0x7db0);" (assignment_expression "pcVar21 = *(code **)(pcStack_d8 + -0x7db0)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_d8 + -0x7db0)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7db0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7db0)" (( "(") (binary_expression "pcStack_d8 + -0x7db0" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7db0")) () ")"))))) (; ";")) (expression_statement "*ppcVar4 = (char *)0x0;" (assignment_expression "*ppcVar4 = (char *)0x0" (pointer_expression "*ppcVar4" (* "*") (identifier "ppcVar4")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar13 = (char **)(iVar6 + -0x1568);" (assignment_expression "ppcVar13 = (char **)(iVar6 + -0x1568)" (identifier "ppcVar13") (= "=") (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 = (*pcVar21)(uVar19,ppcVar13,0x11);" (assignment_expression "iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11)" (identifier "iVar6") (= "=") (call_expression "(*pcVar21)(uVar19,ppcVar13,0x11)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(uVar19,ppcVar13,0x11)" (( "(") (identifier "uVar19") (, ",") (identifier "ppcVar13") (, ",") (number_literal "0x11") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                *puVar8 = 0;\n              }\n              else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *puVar8 = 0;\n              }" ({ "{") (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }" (else "else") (compound_statement "{\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);\n                if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }\n              }" ({ "{") (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" (identifier "ppcVar13") (= "=") (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1554" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc4)" (( "(") (binary_expression "pcStack_d8 + -0x7fc4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1554")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7db0))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7db0)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7db0)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7db0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7db0)" (( "(") (binary_expression "pcStack_d8 + -0x7db0" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7db0")) () ")"))))) () ")")) (argument_list "(uVar19,ppcVar13,0x29)" (( "(") (identifier "uVar19") (, ",") (identifier "ppcVar13") (, ",") (number_literal "0x29") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                  *puVar8 = 1;\n                }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  *puVar8 = 1;\n                }" ({ "{") (expression_statement "*puVar8 = 1;" (assignment_expression "*puVar8 = 1" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }" (else "else") (compound_statement "{\n              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);\n              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n              if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }\n              *ppcVar4 = (char *)0x2;\n            }" ({ "{") (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" (identifier "ppcVar13") (= "=") (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1528" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc4)" (( "(") (binary_expression "pcStack_d8 + -0x7fc4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1528")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7e9c)" (( "(") (binary_expression "pcStack_d8 + -0x7e9c" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (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                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);\n                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }\n              }" ({ "{") (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" (identifier "ppcVar13") (= "=") (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x151c" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc4)" (( "(") (binary_expression "pcStack_d8 + -0x7fc4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x151c")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7e9c)" (( "(") (binary_expression "pcStack_d8 + -0x7e9c" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (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                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);\n                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                  if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }\n                  goto LAB_0002b804;\n                }" ({ "{") (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" (identifier "ppcVar13") (= "=") (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1510" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc4)" (( "(") (binary_expression "pcStack_d8 + -0x7fc4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1510")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7e9c)" (( "(") (binary_expression "pcStack_d8 + -0x7e9c" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                    *ppcVar4 = (char *)0x3;\n                  }\n                  else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    *ppcVar4 = (char *)0x3;\n                  }" ({ "{") (expression_statement "*ppcVar4 = (char *)0x3;" (assignment_expression "*ppcVar4 = (char *)0x3" (pointer_expression "*ppcVar4" (* "*") (identifier "ppcVar4")) (= "=") (cast_expression "(char *)0x3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (} "}")) (else_clause "else {\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }" (else "else") (compound_statement "{\n                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);\n                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);\n                    if (iVar6 != 0) goto LAB_0002b8d8;\n                    *ppcVar4 = (char *)0x4;\n                  }" ({ "{") (expression_statement "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);" (assignment_expression "ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" (identifier "ppcVar13") (= "=") (cast_expression "(char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7fc4) + -0x1508" (pointer_expression "*(int *)(pcStack_d8 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7fc4)" (( "(") (binary_expression "pcStack_d8 + -0x7fc4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x1508")) () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);" (assignment_expression "iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x7e9c))(pcVar10)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7e9c))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7e9c)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7e9c)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7e9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7e9c)" (( "(") (binary_expression "pcStack_d8 + -0x7e9c" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7e9c")) () ")"))))) () ")")) (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")")))) (; ";")) (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 "*ppcVar4 = (char *)0x4;" (assignment_expression "*ppcVar4 = (char *)0x4" (pointer_expression "*ppcVar4" (* "*") (identifier "ppcVar4")) (= "=") (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 "*ppcVar4 = (char *)0x2;" (assignment_expression "*ppcVar4 = (char *)0x2" (pointer_expression "*ppcVar4" (* "*") (identifier "ppcVar4")) (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (labeled_statement "LAB_0002b804:\n        (**(code **)(pcStack_d8 + -0x7728))(uVar19);" (statement_identifier "LAB_0002b804") (: ":") (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(uVar19);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(uVar19)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7728)" (( "(") (binary_expression "pcStack_d8 + -0x7728" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))) (; ";"))) (expression_statement "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);" (call_expression "(**(code **)(pcStack_d8 + -0x7728))(pcStack_d0)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7728)" (( "(") (binary_expression "pcStack_d8 + -0x7728" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(pcStack_d0)" (( "(") (identifier "pcStack_d0") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (if_statement "if (iStack_cc == *piVar15) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_cc == *piVar15)" (( "(") (binary_expression "iStack_cc == *piVar15" (identifier "iStack_cc") (== "==") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (expression_statement "pcVar21 = *(code **)(pcStack_d8 + -0x785c);" (assignment_expression "pcVar21 = *(code **)(pcStack_d8 + -0x785c)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_d8 + -0x785c)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x785c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x785c)" (( "(") (binary_expression "pcStack_d8 + -0x785c" (identifier "pcStack_d8") (+ "+") (number_literal "-0x785c")) () ")"))))) (; ";")) (expression_statement "pcVar22 = ftp_pwd;" (assignment_expression "pcVar22 = ftp_pwd" (identifier "pcVar22") (= "=") (identifier "ftp_pwd")) (; ";")) (expression_statement "iVar6 = iStack_cc;" (assignment_expression "iVar6 = iStack_cc" (identifier "iVar6") (= "=") (identifier "iStack_cc")) (; ";")) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_118 = pcVar21 + 0x8ba8c;" (assignment_expression "pcStack_118 = pcVar21 + 0x8ba8c" (identifier "pcStack_118") (= "=") (binary_expression "pcVar21 + 0x8ba8c" (identifier "pcVar21") (+ "+") (number_literal "0x8ba8c"))) (; ";")) (expression_statement "piVar16 = *(int **)(pcVar21 + 0x84298);" (assignment_expression "piVar16 = *(int **)(pcVar21 + 0x84298)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(pcVar21 + 0x84298)" (* "*") (cast_expression "(int **)(pcVar21 + 0x84298)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x84298)" (( "(") (binary_expression "pcVar21 + 0x84298" (identifier "pcVar21") (+ "+") (number_literal "0x84298")) () ")"))))) (; ";")) (expression_statement "iStack_10c = *piVar16;" (assignment_expression "iStack_10c = *piVar16" (identifier "iStack_10c") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "iStack_104 = iVar5;" (assignment_expression "iStack_104 = iVar5" (identifier "iStack_104") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piStack_100 = piVar15;" (assignment_expression "piStack_100 = piVar15" (identifier "piStack_100") (= "=") (identifier "piVar15")) (; ";")) (expression_statement "pcStack_fc = pcVar10;" (assignment_expression "pcStack_fc = pcVar10" (identifier "pcStack_fc") (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "puStack_f8 = puVar8;" (assignment_expression "puStack_f8 = puVar8" (identifier "puStack_f8") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "pcStack_f4 = pcVar22;" (assignment_expression "pcStack_f4 = pcVar22" (identifier "pcStack_f4") (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);" (assignment_expression "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0)" (identifier "uVar19") (= "=") (call_expression "FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0)" (identifier "FUN_00029120") (argument_list "(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0)" (( "(") (binary_expression "*(int *)(pcVar21 + 0x83ac8) + -0x1500" (pointer_expression "*(int *)(pcVar21 + 0x83ac8)" (* "*") (cast_expression "(int *)(pcVar21 + 0x83ac8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x83ac8)" (( "(") (binary_expression "pcVar21 + 0x83ac8" (identifier "pcVar21") (+ "+") (number_literal "0x83ac8")) () ")")))) (+ "+") (number_literal "-0x1500")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);" (assignment_expression "puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19)" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_118 + -0x77c8))(uVar19)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x77c8))" (( "(") (pointer_expression "**(code **)(pcStack_118 + -0x77c8)" (* "*") (pointer_expression "*(code **)(pcStack_118 + -0x77c8)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x77c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x77c8)" (( "(") (binary_expression "pcStack_118 + -0x77c8" (identifier "pcStack_118") (+ "+") (number_literal "-0x77c8")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))))) (; ";")) (expression_statement "uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);" (assignment_expression "uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" (identifier "uStack_120") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8)" (( "(") (binary_expression "*(int *)(pcStack_118 + -0x7fc8) + 0x40b8" (pointer_expression "*(int *)(pcStack_118 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcStack_118 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_118 + -0x7fc8)" (( "(") (binary_expression "pcStack_118 + -0x7fc8" (identifier "pcStack_118") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x40b8")) () ")"))))) (; ";")) (expression_statement "iVar5 = fd_write(iVar6,uVar19);" (assignment_expression "iVar5 = fd_write(iVar6,uVar19)" (identifier "iVar5") (= "=") (call_expression "fd_write(iVar6,uVar19)" (identifier "fd_write") (argument_list "(iVar6,uVar19)" (( "(") (identifier "iVar6") (, ",") (identifier "uVar19") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcStack_118 + -0x7728))(uVar19);\n  }\n  else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\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_118 + -0x7728))(uVar19);\n  }" ({ "{") (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "(**(code **)(pcStack_118 + -0x7728))(uVar19);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(uVar19)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_118 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_118 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x7728)" (( "(") (binary_expression "pcStack_118 + -0x7728" (identifier "pcStack_118") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_118 + -0x7728))();\n    iVar5 = ftp_response(iVar6,&pcStack_110);\n    if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_118 + -0x7728))();" (call_expression "(**(code **)(pcStack_118 + -0x7728))()" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_118 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_118 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x7728)" (( "(") (binary_expression "pcStack_118 + -0x7728" (identifier "pcStack_118") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = ftp_response(iVar6,&pcStack_110);" (assignment_expression "iVar5 = ftp_response(iVar6,&pcStack_110)" (identifier "iVar5") (= "=") (call_expression "ftp_response(iVar6,&pcStack_110)" (identifier "ftp_response") (argument_list "(iVar6,&pcStack_110)" (( "(") (identifier "iVar6") (, ",") (pointer_expression "&pcStack_110" (& "&") (identifier "pcStack_110")) () ")")))) (; ";")) (if_statement "if (iVar5 == 7) {\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      iVar6 = *(int *)(pcStack_118 + -0x7fc4);\n      if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }\n      iVar5 = 0xf;\n      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);\n    }" ({ "{") (expression_statement "iVar6 = *(int *)(pcStack_118 + -0x7fc4);" (assignment_expression "iVar6 = *(int *)(pcStack_118 + -0x7fc4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcStack_118 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_118 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_118 + -0x7fc4)" (( "(") (binary_expression "pcStack_118 + -0x7fc4" (identifier "pcStack_118") (+ "+") (number_literal "-0x7fc4")) () ")"))))) (; ";")) (if_statement "if (*pcStack_110 != '5') {\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }" (if "if") (parenthesized_expression "(*pcStack_110 != '5')" (( "(") (binary_expression "*pcStack_110 != '5'" (pointer_expression "*pcStack_110" (* "*") (identifier "pcStack_110")) (!= "!=") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);\n        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);\n        if (iVar6 != 0) {\n          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);" (call_expression "(**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7888))" (( "(") (pointer_expression "**(code **)(pcStack_118 + -0x7888)" (* "*") (pointer_expression "*(code **)(pcStack_118 + -0x7888)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x7888)" (( "(") (binary_expression "pcStack_118 + -0x7888" (identifier "pcStack_118") (+ "+") (number_literal "-0x7888")) () ")"))))) () ")")) (argument_list "(pcStack_110,iVar6 + -0x3d0)" (( "(") (identifier "pcStack_110") (, ",") (binary_expression "iVar6 + -0x3d0" (identifier "iVar6") (+ "+") (number_literal "-0x3d0")) () ")"))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);" (assignment_expression "iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7888))" (( "(") (pointer_expression "**(code **)(pcStack_118 + -0x7888)" (* "*") (pointer_expression "*(code **)(pcStack_118 + -0x7888)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x7888)" (( "(") (binary_expression "pcStack_118 + -0x7888" (identifier "pcStack_118") (+ "+") (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_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\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_118 + -0x7728))(*ppcVar13);\n          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);\n          *ppcVar13 = (char *)0x0;\n          pcVar10 = (char *)(*pcVar21)(iVar6);\n          pcVar21 = *(code **)(pcStack_118 + -0x7728);\n          *ppcVar13 = pcVar10;\n          (*pcVar21)(pcStack_110);\n          goto LAB_0002bae8;\n        }" ({ "{") (expression_statement "(**(code **)(pcStack_118 + -0x7728))(*ppcVar13);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(*ppcVar13)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_118 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_118 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x7728)" (( "(") (binary_expression "pcStack_118 + -0x7728" (identifier "pcStack_118") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(*ppcVar13)" (( "(") (pointer_expression "*ppcVar13" (* "*") (identifier "ppcVar13")) () ")"))) (; ";")) (expression_statement "pcVar21 = *(code **)(pcStack_118 + -0x7fa4);" (assignment_expression "pcVar21 = *(code **)(pcStack_118 + -0x7fa4)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_118 + -0x7fa4)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x7fa4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x7fa4)" (( "(") (binary_expression "pcStack_118 + -0x7fa4" (identifier "pcStack_118") (+ "+") (number_literal "-0x7fa4")) () ")"))))) (; ";")) (expression_statement "*ppcVar13 = (char *)0x0;" (assignment_expression "*ppcVar13 = (char *)0x0" (pointer_expression "*ppcVar13" (* "*") (identifier "ppcVar13")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar10 = (char *)(*pcVar21)(iVar6);" (assignment_expression "pcVar10 = (char *)(*pcVar21)(iVar6)" (identifier "pcVar10") (= "=") (cast_expression "(char *)(*pcVar21)(iVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar21)(iVar6)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "pcVar21 = *(code **)(pcStack_118 + -0x7728);" (assignment_expression "pcVar21 = *(code **)(pcStack_118 + -0x7728)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_118 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x7728)" (( "(") (binary_expression "pcStack_118 + -0x7728" (identifier "pcStack_118") (+ "+") (number_literal "-0x7728")) () ")"))))) (; ";")) (expression_statement "*ppcVar13 = pcVar10;" (assignment_expression "*ppcVar13 = pcVar10" (pointer_expression "*ppcVar13" (* "*") (identifier "ppcVar13")) (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "(*pcVar21)(pcStack_110);" (call_expression "(*pcVar21)(pcStack_110)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(pcStack_110)" (( "(") (identifier "pcStack_110") () ")"))) (; ";")) (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_118 + -0x7728))(pcStack_110);" (call_expression "(**(code **)(pcStack_118 + -0x7728))(pcStack_110)" (parenthesized_expression "(**(code **)(pcStack_118 + -0x7728))" (( "(") (pointer_expression "**(code **)(pcStack_118 + -0x7728)" (* "*") (pointer_expression "*(code **)(pcStack_118 + -0x7728)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x7728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x7728)" (( "(") (binary_expression "pcStack_118 + -0x7728" (identifier "pcStack_118") (+ "+") (number_literal "-0x7728")) () ")"))))) () ")")) (argument_list "(pcStack_110)" (( "(") (identifier "pcStack_110") () ")"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0002bae8:\n  if (iStack_10c == *piVar16) {\n    return iVar5;\n  }" (statement_identifier "LAB_0002bae8") (: ":") (if_statement "if (iStack_10c == *piVar16) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_10c == *piVar16)" (( "(") (binary_expression "iStack_10c == *piVar16" (identifier "iStack_10c") (== "==") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))) (expression_statement "pcVar21 = *(code **)(pcStack_118 + -0x785c);" (assignment_expression "pcVar21 = *(code **)(pcStack_118 + -0x785c)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_118 + -0x785c)" (* "*") (cast_expression "(code **)(pcStack_118 + -0x785c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_118 + -0x785c)" (( "(") (binary_expression "pcStack_118 + -0x785c" (identifier "pcStack_118") (+ "+") (number_literal "-0x785c")) () ")"))))) (; ";")) (expression_statement "pcVar22 = ftp_size;" (assignment_expression "pcVar22 = ftp_size" (identifier "pcVar22") (= "=") (identifier "ftp_size")) (; ";")) (expression_statement "iVar14 = iStack_10c;" (assignment_expression "iVar14 = iStack_10c" (identifier "iVar14") (= "=") (identifier "iStack_10c")) (; ";")) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar15 = *(int **)(pcVar21 + 0x840f4);" (assignment_expression "piVar15 = *(int **)(pcVar21 + 0x840f4)" (identifier "piVar15") (= "=") (pointer_expression "*(int **)(pcVar21 + 0x840f4)" (* "*") (cast_expression "(int **)(pcVar21 + 0x840f4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x840f4)" (( "(") (binary_expression "pcVar21 + 0x840f4" (identifier "pcVar21") (+ "+") (number_literal "0x840f4")) () ")"))))) (; ";")) (expression_statement "iStack_14c = *piVar15;" (assignment_expression "iStack_14c = *piVar15" (identifier "iStack_14c") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (expression_statement "iStack_148 = iVar5;" (assignment_expression "iStack_148 = iVar5" (identifier "iStack_148") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piStack_144 = piVar16;" (assignment_expression "piStack_144 = piVar16" (identifier "piStack_144") (= "=") (identifier "piVar16")) (; ";")) (expression_statement "iStack_140 = iVar6;" (assignment_expression "iStack_140 = iVar6" (identifier "iStack_140") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "ppcStack_13c = ppcVar13;" (assignment_expression "ppcStack_13c = ppcVar13" (identifier "ppcStack_13c") (= "=") (identifier "ppcVar13")) (; ";")) (expression_statement "ppcStack_138 = ppcVar4;" (assignment_expression "ppcStack_138 = ppcVar4" (identifier "ppcStack_138") (= "=") (identifier "ppcVar4")) (; ";")) (expression_statement "pcStack_134 = pcVar22;" (assignment_expression "pcStack_134 = pcVar22" (identifier "pcStack_134") (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);" (assignment_expression "uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc)" (identifier "uVar19") (= "=") (call_expression "FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc)" (identifier "FUN_00029120") (argument_list "(*(int *)(pcVar21 + 0x83924) + -0x14fc)" (( "(") (binary_expression "*(int *)(pcVar21 + 0x83924) + -0x14fc" (pointer_expression "*(int *)(pcVar21 + 0x83924)" (* "*") (cast_expression "(int *)(pcVar21 + 0x83924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x83924)" (( "(") (binary_expression "pcVar21 + 0x83924" (identifier "pcVar21") (+ "+") (number_literal "0x83924")) () ")")))) (+ "+") (number_literal "-0x14fc")) () ")")))) (; ";")) (expression_statement "uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);" (assignment_expression "uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19)" (identifier "uVar12") (= "=") (call_expression "(**(code **)(pcVar21 + 0x84120))(uVar19)" (parenthesized_expression "(**(code **)(pcVar21 + 0x84120))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x84120)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x84120)" (* "*") (cast_expression "(code **)(pcVar21 + 0x84120)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x84120)" (( "(") (binary_expression "pcVar21 + 0x84120" (identifier "pcVar21") (+ "+") (number_literal "0x84120")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")")))) (; ";")) (expression_statement "iVar5 = fd_write(iVar14,uVar19,uVar12);" (assignment_expression "iVar5 = fd_write(iVar14,uVar19,uVar12)" (identifier "iVar5") (= "=") (call_expression "fd_write(iVar14,uVar19,uVar12)" (identifier "fd_write") (argument_list "(iVar14,uVar19,uVar12)" (( "(") (identifier "iVar14") (, ",") (identifier "uVar19") (, ",") (identifier "uVar12") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }\n  else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = 0x2c;\n    (**(code **)(pcVar21 + 0x841c0))(uVar19);\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" ({ "{") (expression_statement "iVar5 = 0x2c;" (assignment_expression "iVar5 = 0x2c" (identifier "iVar5") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "(**(code **)(pcVar21 + 0x841c0))(uVar19);" (call_expression "(**(code **)(pcVar21 + 0x841c0))(uVar19)" (parenthesized_expression "(**(code **)(pcVar21 + 0x841c0))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x841c0)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x841c0)" (* "*") (cast_expression "(code **)(pcVar21 + 0x841c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x841c0)" (( "(") (binary_expression "pcVar21 + 0x841c0" (identifier "pcVar21") (+ "+") (number_literal "0x841c0")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))) (; ";")) (expression_statement "*(undefined4 *)((int)puVar11 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar11 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar11 + 4)" (* "*") (cast_expression "(undefined4 *)((int)puVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 4)" (( "(") (binary_expression "(int)puVar11 + 4" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" (* "*") (cast_expression "(undefined4 *)puVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcVar21 + 0x841c0))();\n    iVar5 = ftp_response(iVar14,&pcStack_150);\n    pcVar10 = pcStack_150;\n    if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }\n    *(undefined4 *)((int)puVar11 + 4) = 0;\n    *(undefined4 *)puVar11 = 0;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar21 + 0x841c0))();" (call_expression "(**(code **)(pcVar21 + 0x841c0))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x841c0))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x841c0)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x841c0)" (* "*") (cast_expression "(code **)(pcVar21 + 0x841c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x841c0)" (( "(") (binary_expression "pcVar21 + 0x841c0" (identifier "pcVar21") (+ "+") (number_literal "0x841c0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = ftp_response(iVar14,&pcStack_150);" (assignment_expression "iVar5 = ftp_response(iVar14,&pcStack_150)" (identifier "iVar5") (= "=") (call_expression "ftp_response(iVar14,&pcStack_150)" (identifier "ftp_response") (argument_list "(iVar14,&pcStack_150)" (( "(") (identifier "iVar14") (, ",") (pointer_expression "&pcStack_150" (& "&") (identifier "pcStack_150")) () ")")))) (; ";")) (expression_statement "pcVar10 = pcStack_150;" (assignment_expression "pcVar10 = pcStack_150" (identifier "pcVar10") (= "=") (identifier "pcStack_150")) (; ";")) (if_statement "if (iVar5 == 7) {\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }" (if "if") (parenthesized_expression "(iVar5 == 7)" (( "(") (binary_expression "iVar5 == 7" (identifier "iVar5") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }\n      (*pcVar22)(pcStack_150);\n    }" ({ "{") (if_statement "if (*pcStack_150 == '5') {\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }\n      else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" (if "if") (parenthesized_expression "(*pcStack_150 == '5')" (( "(") (binary_expression "*pcStack_150 == '5'" (pointer_expression "*pcStack_150" (* "*") (identifier "pcStack_150")) (== "==") (char_literal "'5'" (' "'") (character "5") (' "'"))) () ")")) (compound_statement "{\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n      }" ({ "{") (expression_statement "pcVar22 = *(code **)(pcVar21 + 0x841c0);" (assignment_expression "pcVar22 = *(code **)(pcVar21 + 0x841c0)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(pcVar21 + 0x841c0)" (* "*") (cast_expression "(code **)(pcVar21 + 0x841c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x841c0)" (( "(") (binary_expression "pcVar21 + 0x841c0" (identifier "pcVar21") (+ "+") (number_literal "0x841c0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" (else "else") (compound_statement "{\n        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();\n        *piVar16 = 0;\n        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);\n        iVar6 = *piVar16;\n        *puVar11 = uVar23;\n        pcVar22 = *(code **)(pcVar21 + 0x841c0);\n        if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }\n      }" ({ "{") (expression_statement "piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();" (assignment_expression "piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))()" (identifier "piVar16") (= "=") (cast_expression "(int *)(**(code **)(pcVar21 + 0x84348))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar21 + 0x84348))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x84348))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x84348)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x84348)" (* "*") (cast_expression "(code **)(pcVar21 + 0x84348)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x84348)" (( "(") (binary_expression "pcVar21 + 0x84348" (identifier "pcVar21") (+ "+") (number_literal "0x84348")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*piVar16 = 0;" (assignment_expression "*piVar16 = 0" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);" (assignment_expression "uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10)" (identifier "uVar23") (= "=") (call_expression "(**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10)" (parenthesized_expression "(**(code **)(pcVar21 + 0x841f4))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x841f4)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x841f4)" (* "*") (cast_expression "(code **)(pcVar21 + 0x841f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x841f4)" (( "(") (binary_expression "pcVar21 + 0x841f4" (identifier "pcVar21") (+ "+") (number_literal "0x841f4")) () ")"))))) () ")")) (argument_list "(pcVar10 + 4,0,10)" (( "(") (binary_expression "pcVar10 + 4" (identifier "pcVar10") (+ "+") (number_literal "4")) (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "iVar6 = *piVar16;" (assignment_expression "iVar6 = *piVar16" (identifier "iVar6") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "*puVar11 = uVar23;" (assignment_expression "*puVar11 = uVar23" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "pcVar22 = *(code **)(pcVar21 + 0x841c0);" (assignment_expression "pcVar22 = *(code **)(pcVar21 + 0x841c0)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(pcVar21 + 0x841c0)" (* "*") (cast_expression "(code **)(pcVar21 + 0x841c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x841c0)" (( "(") (binary_expression "pcVar21 + 0x841c0" (identifier "pcVar21") (+ "+") (number_literal "0x841c0")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) {\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*pcVar22)(pcStack_150);\n          goto LAB_0002bc24;\n        }" ({ "{") (expression_statement "(*pcVar22)(pcStack_150);" (call_expression "(*pcVar22)(pcStack_150)" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "(pcStack_150)" (( "(") (identifier "pcStack_150") () ")"))) (; ";")) (goto_statement "goto LAB_0002bc24;" (goto "goto") (statement_identifier "LAB_0002bc24") (; ";")) (} "}"))) (} "}")))) (expression_statement "(*pcVar22)(pcStack_150);" (call_expression "(*pcVar22)(pcStack_150)" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "(pcStack_150)" (( "(") (identifier "pcStack_150") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)puVar11 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar11 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar11 + 4)" (* "*") (cast_expression "(undefined4 *)((int)puVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 4)" (( "(") (binary_expression "(int)puVar11 + 4" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" (* "*") (cast_expression "(undefined4 *)puVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0002bc24:\n  if (iStack_14c == *piVar15) {\n    return iVar5;\n  }" (statement_identifier "LAB_0002bc24") (: ":") (if_statement "if (iStack_14c == *piVar15) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_14c == *piVar15)" (( "(") (binary_expression "iStack_14c == *piVar15" (identifier "iStack_14c") (== "==") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))) (expression_statement "pcVar21 = *(code **)(pcVar21 + 0x8408c);" (assignment_expression "pcVar21 = *(code **)(pcVar21 + 0x8408c)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcVar21 + 0x8408c)" (* "*") (cast_expression "(code **)(pcVar21 + 0x8408c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x8408c)" (( "(") (binary_expression "pcVar21 + 0x8408c" (identifier "pcVar21") (+ "+") (number_literal "0x8408c")) () ")"))))) (; ";")) (expression_statement "iVar5 = iStack_14c;" (assignment_expression "iVar5 = iStack_14c" (identifier "iVar5") (= "=") (identifier "iStack_14c")) (; ";")) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (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 **)(pcVar21 + 0x83e84))();" (assignment_expression "iVar6 = (**(code **)(pcVar21 + 0x83e84))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar21 + 0x83e84))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x83e84))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x83e84)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x83e84)" (* "*") (cast_expression "(code **)(pcVar21 + 0x83e84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x83e84)" (( "(") (binary_expression "pcVar21 + 0x83e84" (identifier "pcVar21") (+ "+") (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,char *file)

{
  bool bVar1;
  type_2 *puVar2;
  char **ppcVar3;
  int var_11;
  int var_5;
  type_1 var_7;
  char **var_17;
  type_3 *bufsize;
  int var_14;
  char **buf;
  type_4 *bufsize_00;
  char *var_21;
  char **ppcVar10;
  int var_16;
  int var_15;
  int *piVar12;
  int *piVar13;
  char *pcVar14;
  type_3 uVar15;
  type_2 *var_10;
  type_5 *var_19;
  type_5 *pcVar18;
  type_4 uVar19;
  double in_f12_13;
  char *pcStack_150;
  int var_25;
  type_1 uStack_148;
  int *piStack_144;
  int iStack_140;
  char **ppcStack_13c;
  char **ppcStack_138;
  type_5 *pcStack_134;
  type_4 uStack_120;
  type_5 *var_23;
  char *pcStack_110;
  int var_24;
  type_1 uStack_104;
  int *piStack_100;
  char *pcStack_fc;
  type_3 *puStack_f8;
  type_5 *pcStack_f4;
  type_4 uStack_e0;
  type_5 *var_20;
  char *pcStack_d0;
  int var_22;
  char **ppcStack_c8;
  int iStack_c4;
  int iStack_c0;
  int iStack_bc;
  char *pcStack_b8;
  char **ppcStack_b4;
  type_3 uStack_b0;
  type_5 *pcStack_ac;
  type_4 uStack_98;
  type_2 *var_13;
  type_1 uStack_84;
  type_3 *puStack_80;
  type_6 *pbStack_7c;
  char *pcStack_78;
  char *var_18;
  char **ppcStack_70;
  type_2 *puStack_6c;
  int iStack_68;
  type_6 *local_30;
  char *respline;
  int var_9;
  
  puVar2 = PTR___stack_chk_guard_000afc3c;
  var_9 = *(int *)PTR___stack_chk_guard_000afc3c;
  ppcVar3 = (char **)var_1(var_2 + -0x15c0,file);
  var_11 = (*(type_5 *)PTR_strlen_000afc68)(ppcVar3);
  uVar19 = *(type_4 *)(var_3 + 0x40b8);
  ppcVar10 = ppcVar3;
  var_5 = var_4(csock,(char *)ppcVar3,var_11,in_f12_13);
  if (var_5 < 0) {
    (*(type_5 *)PTR_free_000afd08)(ppcVar3);
    var_7 = WRITEFAILED;
  }
  else {
    (*(type_5 *)PTR_free_000afd08)();
    ppcVar10 = &respline;
    var_7 = var_6(csock,ppcVar10);
    if (var_7 == var_8) {
      ppcVar10 = (char **)0x31;
      if (*respline == '5') {
        (*(type_5 *)PTR_free_000afd08)();
        var_7 = FTPNSFOD;
      }
      else if (*respline == '1') {
        (*(type_5 *)PTR_free_000afd08)();
      }
      else {
        (*(type_5 *)PTR_free_000afd08)();
        var_7 = FTPRERR;
      }
    }
  }
  if (var_9 == *(int *)puVar2) {
    return var_7;
  }
  var_5 = var_9;
  var_10 = PTR___stack_chk_fail_000afbd4;
  (*(type_5 *)PTR___stack_chk_fail_000afbd4)();
  var_13 = var_10 + 0x8c004;
  puStack_80 = *(type_3 **)(var_10 + 0x84810);
  local_30 = (type_6 *)((type_7)uVar19 >> 0x20);
  puStack_6c = puVar2;
  pbStack_7c = local_30;
  var_18 = (char *)*puStack_80;
  *local_30 = 0;
  var_15 = 0;
  ppcStack_70 = ppcVar3;
  iStack_68 = csock;
  if (var_11 == 0) {
    var_21 = (char *)(*(int *)(var_10 + 0x84040) + -0x15b0);
  }
  else if (*(char *)(*(int *)(var_10 + 0x8405c) + 0x16b) == '\0') {
    var_15 = 1;
    var_21 = (char *)(*(int *)(var_10 + 0x84040) + -0x15b8);
  }
  else {
    var_15 = 1;
    var_12((char *)(*(int *)(var_10 + 0x84040) + -0x15a8));
    var_21 = (char *)(*(int *)(var_13 + -0x7fc4) + -0x15b8);
  }
  var_11 = *(int *)(var_13 + -0x7c70);
  uVar19 = *(type_4 *)(*(int *)(var_13 + -0x7fc8) + 0x40b8);
  uVar15 = *(type_3 *)(var_13 + -0x7d38);
  pcVar14 = (char *)(*(int *)(var_13 + -0x7fc4) + -0x15b8);
  do {
    while( true ) {
      var_17 = (char **)var_1(var_21,(char *)ppcVar10);
      bufsize = (type_3 *)(**(type_5 **)(var_13 + -0x77c8))(var_17);
      ppcVar3 = var_17;
      uStack_98 = uVar19;
      var_14 = var_4(var_5,(char *)var_17,(int)bufsize,in_f12_13);
      if (var_14 < 0) {
        (**(type_5 **)(var_13 + -0x7728))(var_17);
        var_7 = WRITEFAILED;
        goto LAB_0002b57c;
      }
      var_17 = (char **)(var_15 + 1);
      (**(type_5 **)(var_13 + -0x7728))();
      ppcVar3 = &pcStack_78;
      var_7 = var_6(var_5,&pcStack_78);
      var_21 = pcVar14;
      if (var_7 != var_8) break;
      ppcVar3 = (char **)0x31;
      if (*pcStack_78 == '5') {
        var_15 = 0;
        var_7 = FTPNSFOD;
      }
      else if (*pcStack_78 == '1') {
        *pbStack_7c = (type_6)var_15 ^ 1;
        var_15 = 1;
      }
      else {
        var_15 = 0;
        var_7 = FTPRERR;
      }
      uStack_84 = var_7;
      (**(type_5 **)(var_13 + -0x7728))();
      pcStack_78 = (char *)0x0;
      var_7 = uStack_84;
      if (var_16 != 0) goto LAB_0002b570;
      if ((var_17 != (char **)0x1) || (bVar1 = var_15 != 0, var_15 = 1, bVar1)) goto LAB_0002b57c;
    }
    if (var_16 != 0) {
LAB_0002b570:
      if ((var_17 == (char **)0x1) && (*(char *)(*(int *)(var_13 + -0x7fa8) + 0x16b) != '\0'))
      {
        uStack_84 = var_7;
        var_12((char *)(*(int *)(var_13 + -0x7fc4) + -0x1590));
        var_7 = uStack_84;
      }
      break;
    }
    var_15 = 1;
  } while (var_17 == (char **)0x1);
LAB_0002b57c:
  if (var_18 == (char *)*puStack_80) {
    return var_7;
  }
  var_19 = *(type_5 **)(var_13 + -0x785c);
  pcVar18 = ftp_syst;
  var_21 = var_18;
  (*var_19)();
  var_20 = var_19 + 0x8bd8c;
  piVar12 = *(int **)(var_19 + 0x84598);
  var_22 = *piVar12;
  ppcStack_c8 = var_17;
  iStack_c4 = var_15;
  iStack_c0 = var_5;
  iStack_bc = var_11 + -0x6ee0;
  pcStack_b8 = pcVar14;
  ppcStack_b4 = ppcVar10;
  uStack_b0 = uVar15;
  pcStack_ac = pcVar18;
  var_17 = (char **)var_1((char *)(*(int *)(var_19 + 0x83dc8) + -0x157c),(char *)0x0);
  var_11 = (**(type_5 **)(var_20 + -0x77c8))(var_17);
  uStack_e0 = *(type_4 *)(*(int *)(var_20 + -0x7fc8) + 0x40b8);
  ppcVar10 = var_17;
  var_11 = var_4((int)var_21,(char *)var_17,var_11,in_f12_13);
  if (var_11 < 0) {
    var_7 = WRITEFAILED;
    (**(type_5 **)(var_20 + -0x7728))(var_17);
  }
  else {
    (**(type_5 **)(var_20 + -0x7728))();
    ppcVar10 = &pcStack_d0;
    var_7 = var_6((int)var_21,ppcVar10);
    pcVar14 = pcStack_d0;
    if (var_7 == var_8) {
      if (*pcStack_d0 == '5') {
        var_7 = FTPSRVERR;
        (**(type_5 **)(var_20 + -0x7728))(pcStack_d0);
        var_21 = pcStack_d0;
      }
      else {
        var_11 = *(int *)(var_20 + -0x7fc8);
        uVar15 = (**(type_5 **)(var_20 + -0x794c))(pcStack_d0);
        (**(type_5 **)(var_20 + -0x7888))(pcVar14,var_11 + 0x4a48);
        ppcVar10 = (char **)(var_11 + 0x4a48);
        var_21 = (char *)(**(type_5 **)(var_20 + -0x7888))(0);
        *bufsize = 2;
        if (var_21 == (char *)0x0) {
LAB_0002b8d8:
          *ppcVar3 = (char *)0x5;
        }
        else {
          ppcVar10 = (char **)(*(int *)(var_20 + -0x7fc4) + -0x1574);
          var_11 = (**(type_5 **)(var_20 + -0x7e9c))(var_21);
          if (var_11 == 0) {
            *ppcVar3 = (char *)0x1;
          }
          else {
            var_11 = (**(type_5 **)(var_20 + -0x7e9c))
                              (var_21,*(int *)(var_20 + -0x7fc4) + -0x1570);
            if (var_11 == 0) {
              var_11 = *(int *)(var_20 + -0x7fc4);
              var_19 = *(type_5 **)(var_20 + -0x7db0);
              *ppcVar3 = (char *)0x0;
              ppcVar10 = (char **)(var_11 + -0x1568);
              var_11 = (*var_19)(uVar15,ppcVar10,0x11);
              if (var_11 == 0) {
                *bufsize = 0;
              }
              else {
                ppcVar10 = (char **)(*(int *)(var_20 + -0x7fc4) + -0x1554);
                var_11 = (**(type_5 **)(var_20 + -0x7db0))(uVar15,ppcVar10,0x29);
                if (var_11 == 0) {
                  *bufsize = 1;
                }
              }
            }
            else {
              ppcVar10 = (char **)(*(int *)(var_20 + -0x7fc4) + -0x1528);
              var_11 = (**(type_5 **)(var_20 + -0x7e9c))(var_21);
              if (var_11 != 0) {
                ppcVar10 = (char **)(*(int *)(var_20 + -0x7fc4) + -0x151c);
                var_11 = (**(type_5 **)(var_20 + -0x7e9c))(var_21);
                if (var_11 != 0) {
                  ppcVar10 = (char **)(*(int *)(var_20 + -0x7fc4) + -0x1510);
                  var_11 = (**(type_5 **)(var_20 + -0x7e9c))(var_21);
                  if (var_11 == 0) {
                    *ppcVar3 = (char *)0x3;
                  }
                  else {
                    ppcVar10 = (char **)(*(int *)(var_20 + -0x7fc4) + -0x1508);
                    var_11 = (**(type_5 **)(var_20 + -0x7e9c))(var_21);
                    if (var_11 != 0) goto LAB_0002b8d8;
                    *ppcVar3 = (char *)0x4;
                  }
                  goto LAB_0002b804;
                }
              }
              *ppcVar3 = (char *)0x2;
            }
          }
        }
LAB_0002b804:
        (**(type_5 **)(var_20 + -0x7728))(uVar15);
        (**(type_5 **)(var_20 + -0x7728))(pcStack_d0);
      }
    }
  }
  if (var_22 == *piVar12) {
    return var_7;
  }
  var_19 = *(type_5 **)(var_20 + -0x785c);
  pcVar18 = ftp_pwd;
  var_11 = var_22;
  (*var_19)();
  var_23 = var_19 + 0x8ba8c;
  piVar13 = *(int **)(var_19 + 0x84298);
  var_24 = *piVar13;
  uStack_104 = var_7;
  piStack_100 = piVar12;
  pcStack_fc = var_21;
  puStack_f8 = bufsize;
  pcStack_f4 = pcVar18;
  buf = (char **)var_1((char *)(*(int *)(var_19 + 0x83ac8) + -0x1500),(char *)0x0);
  bufsize_00 = (type_4 *)(**(type_5 **)(var_23 + -0x77c8))(buf);
  uStack_120 = *(type_4 *)(*(int *)(var_23 + -0x7fc8) + 0x40b8);
  var_17 = buf;
  var_5 = var_4(var_11,(char *)buf,(int)bufsize_00,in_f12_13);
  if (var_5 < 0) {
    var_7 = WRITEFAILED;
    (**(type_5 **)(var_23 + -0x7728))(buf);
  }
  else {
    (**(type_5 **)(var_23 + -0x7728))();
    var_17 = &pcStack_110;
    var_7 = var_6(var_11,var_17);
    if (var_7 == var_8) {
      var_11 = *(int *)(var_23 + -0x7fc4);
      if (*pcStack_110 != '5') {
        (**(type_5 **)(var_23 + -0x7888))(pcStack_110,var_11 + -0x3d0);
        var_17 = (char **)(var_11 + -0x3d0);
        var_11 = (**(type_5 **)(var_23 + -0x7888))(0);
        if (var_11 != 0) {
          (**(type_5 **)(var_23 + -0x7728))(*ppcVar10);
          var_19 = *(type_5 **)(var_23 + -0x7fa4);
          *ppcVar10 = (char *)0x0;
          var_21 = (char *)(*var_19)(var_11);
          var_19 = *(type_5 **)(var_23 + -0x7728);
          *ppcVar10 = var_21;
          (*var_19)(pcStack_110);
          goto LAB_0002bae8;
        }
      }
      var_7 = FTPSRVERR;
      (**(type_5 **)(var_23 + -0x7728))(pcStack_110);
    }
  }
LAB_0002bae8:
  if (var_24 == *piVar13) {
    return var_7;
  }
  var_19 = *(type_5 **)(var_23 + -0x785c);
  pcVar18 = ftp_size;
  var_5 = var_24;
  (*var_19)();
  piVar12 = *(int **)(var_19 + 0x840f4);
  var_25 = *piVar12;
  uStack_148 = var_7;
  piStack_144 = piVar13;
  iStack_140 = var_11;
  ppcStack_13c = ppcVar10;
  ppcStack_138 = ppcVar3;
  pcStack_134 = pcVar18;
  var_21 = var_1((char *)(*(int *)(var_19 + 0x83924) + -0x14fc),(char *)var_17);
  var_11 = (**(type_5 **)(var_19 + 0x84120))(var_21);
  var_11 = var_4(var_5,var_21,var_11,in_f12_13);
  if (var_11 < 0) {
    var_7 = WRITEFAILED;
    (**(type_5 **)(var_19 + 0x841c0))(var_21);
    *(type_3 *)((int)bufsize_00 + 4) = 0;
    *(type_3 *)bufsize_00 = 0;
  }
  else {
    (**(type_5 **)(var_19 + 0x841c0))();
    var_7 = var_6(var_5,&pcStack_150);
    var_21 = pcStack_150;
    if (var_7 == var_8) {
      if (*pcStack_150 == '5') {
        pcVar18 = *(type_5 **)(var_19 + 0x841c0);
      }
      else {
        piVar13 = (int *)(**(type_5 **)(var_19 + 0x84348))();
        *piVar13 = 0;
        uVar19 = (**(type_5 **)(var_19 + 0x841f4))(var_21 + 4,0,10);
        var_11 = *piVar13;
        *bufsize_00 = uVar19;
        pcVar18 = *(type_5 **)(var_19 + 0x841c0);
        if (var_11 == 0) {
          (*pcVar18)(pcStack_150);
          goto LAB_0002bc24;
        }
      }
      (*pcVar18)(pcStack_150);
    }
    *(type_3 *)((int)bufsize_00 + 4) = 0;
    *(type_3 *)bufsize_00 = 0;
  }
LAB_0002bc24:
  if (var_25 == *piVar12) {
    return var_7;
  }
  var_19 = *(type_5 **)(var_19 + 0x8408c);
  var_11 = var_25;
  (*var_19)();
  if (var_11 == 0) {
    return 0x49;
  }
  var_5 = (**(type_5 **)(var_19 + 0x83e84))();
  if (var_5 == 0) {
    var_7 = (type_1)*(char *)(var_11 + 5);
    if (var_7 != var_26) {
      if (var_7 - 0x61 < 0x1a) {
        var_7 = (type_1)(char)(*(char *)(var_11 + 5) + -0x20);
      }
      return var_7;
    }
  }
  return 0x49;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator 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: (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: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (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)) (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))))) (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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) 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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) 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: (number_literal))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (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: (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))) (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(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)

{
  bool bVar1;
  undefined *puVar2;
  char *pcVar3;
  char **ppcVar4;
  int iVar5;
  int iVar6;
  char **ppcVar7;
  undefined4 *puVar8;
  int iVar9;
  char *pcVar10;
  undefined8 *puVar11;
  undefined4 uVar12;
  char **ppcVar13;
  int iVar14;
  int *piVar15;
  int *piVar16;
  int iVar17;
  int iVar18;
  undefined4 uVar19;
  undefined *puVar20;
  code *pcVar21;
  code *pcVar22;
  undefined8 uVar23;
  char *pcStack_150;
  int iStack_14c;
  int iStack_148;
  int *piStack_144;
  int iStack_140;
  char **ppcStack_13c;
  char **ppcStack_138;
  code *pcStack_134;
  undefined8 uStack_120;
  code *pcStack_118;
  char *pcStack_110;
  int iStack_10c;
  int iStack_104;
  int *piStack_100;
  char *pcStack_fc;
  undefined4 *puStack_f8;
  code *pcStack_f4;
  undefined8 uStack_e0;
  code *pcStack_d8;
  char *pcStack_d0;
  int iStack_cc;
  char **ppcStack_c8;
  int iStack_c4;
  int iStack_c0;
  int iStack_bc;
  int iStack_b8;
  char **ppcStack_b4;
  undefined4 uStack_b0;
  code *pcStack_ac;
  undefined8 uStack_98;
  undefined *puStack_90;
  int iStack_84;
  undefined4 *puStack_80;
  byte *pbStack_7c;
  char *pcStack_78;
  char *pcStack_74;
  char **ppcStack_70;
  undefined *puStack_6c;
  undefined4 uStack_68;
  byte *local_30;
  char *local_18;
  int local_14;
  
  puVar2 = PTR___stack_chk_guard_000afc3c;
  local_14 = *(int *)PTR___stack_chk_guard_000afc3c;
  ppcVar4 = (char **)FUN_00029120(PTR_s_hallenge__000af46c + -0x15c0);
  iVar5 = (*(code *)PTR_strlen_000afc68)(ppcVar4);
  uVar23 = *(undefined8 *)(PTR_LAB_000af468 + 0x40b8);
  ppcVar13 = ppcVar4;
  iVar6 = fd_write(param_1);
  if (iVar6 < 0) {
    (*(code *)PTR_free_000afd08)(ppcVar4);
    iVar6 = 0x2c;
  }
  else {
    (*(code *)PTR_free_000afd08)();
    ppcVar13 = &local_18;
    iVar6 = ftp_response(param_1);
    if (iVar6 == 7) {
      ppcVar13 = (char **)0x31;
      if (*local_18 == '5') {
        (*(code *)PTR_free_000afd08)();
        iVar6 = 0xc;
      }
      else if (*local_18 == '1') {
        (*(code *)PTR_free_000afd08)();
      }
      else {
        (*(code *)PTR_free_000afd08)();
        iVar6 = 0xe;
      }
    }
  }
  if (local_14 == *(int *)puVar2) {
    return iVar6;
  }
  iVar6 = local_14;
  puVar20 = PTR___stack_chk_fail_000afbd4;
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  puStack_90 = puVar20 + 0x8c004;
  puStack_80 = *(undefined4 **)(puVar20 + 0x84810);
  local_30 = (byte *)((ulonglong)uVar23 >> 0x20);
  puStack_6c = puVar2;
  pbStack_7c = local_30;
  pcStack_74 = (char *)*puStack_80;
  *local_30 = 0;
  iVar14 = 0;
  ppcStack_70 = ppcVar4;
  uStack_68 = param_1;
  if (iVar5 == 0) {
    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b0;
  }
  else if (*(char *)(*(int *)(puVar20 + 0x8405c) + 0x16b) == '\0') {
    iVar14 = 1;
    iVar5 = *(int *)(puVar20 + 0x84040) + -0x15b8;
  }
  else {
    iVar14 = 1;
    debug_logprintf(*(int *)(puVar20 + 0x84040) + -0x15a8);
    iVar5 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;
  }
  iVar17 = *(int *)(puStack_90 + -0x7c70);
  uVar23 = *(undefined8 *)(*(int *)(puStack_90 + -0x7fc8) + 0x40b8);
  uVar19 = *(undefined4 *)(puStack_90 + -0x7d38);
  iVar18 = *(int *)(puStack_90 + -0x7fc4) + -0x15b8;
  do {
    while( true ) {
      ppcVar7 = (char **)FUN_00029120(iVar5,ppcVar13);
      puVar8 = (undefined4 *)(**(code **)(puStack_90 + -0x77c8))(ppcVar7);
      ppcVar4 = ppcVar7;
      uStack_98 = uVar23;
      iVar5 = fd_write(iVar6);
      if (iVar5 < 0) {
        (**(code **)(puStack_90 + -0x7728))(ppcVar7);
        iVar9 = 0x2c;
        goto LAB_0002b57c;
      }
      ppcVar7 = (char **)(iVar14 + 1);
      (**(code **)(puStack_90 + -0x7728))();
      ppcVar4 = &pcStack_78;
      iVar9 = ftp_response(iVar6);
      iVar5 = iVar18;
      if (iVar9 != 7) break;
      ppcVar4 = (char **)0x31;
      if (*pcStack_78 == '5') {
        iVar14 = 0;
        iVar9 = 0xc;
      }
      else if (*pcStack_78 == '1') {
        *pbStack_7c = (byte)iVar14 ^ 1;
        iVar14 = 1;
      }
      else {
        iVar14 = 0;
        iVar9 = 0xe;
      }
      iStack_84 = iVar9;
      (**(code **)(puStack_90 + -0x7728))();
      pcStack_78 = (char *)0x0;
      iVar9 = iStack_84;
      if (param_4 != 0) goto LAB_0002b570;
      if ((ppcVar7 != (char **)&DAT_00000001) || (bVar1 = iVar14 != 0, iVar14 = 1, bVar1))
      goto LAB_0002b57c;
    }
    if (param_4 != 0) {
LAB_0002b570:
      if ((ppcVar7 == (char **)&DAT_00000001) &&
         (*(char *)(*(int *)(puStack_90 + -0x7fa8) + 0x16b) != '\0')) {
        iStack_84 = iVar9;
        debug_logprintf(*(int *)(puStack_90 + -0x7fc4) + -0x1590);
        iVar9 = iStack_84;
      }
      break;
    }
    iVar14 = 1;
  } while (ppcVar7 == (char **)&DAT_00000001);
LAB_0002b57c:
  if (pcStack_74 == (char *)*puStack_80) {
    return iVar9;
  }
  pcVar21 = *(code **)(puStack_90 + -0x785c);
  pcVar22 = ftp_syst;
  pcVar10 = pcStack_74;
  (*pcVar21)();
  pcStack_d8 = pcVar21 + 0x8bd8c;
  piVar15 = *(int **)(pcVar21 + 0x84598);
  iStack_cc = *piVar15;
  ppcStack_c8 = ppcVar7;
  iStack_c4 = iVar14;
  iStack_c0 = iVar6;
  iStack_bc = iVar17 + -0x6ee0;
  iStack_b8 = iVar18;
  ppcStack_b4 = ppcVar13;
  uStack_b0 = uVar19;
  pcStack_ac = pcVar22;
  ppcVar7 = (char **)FUN_00029120(*(int *)(pcVar21 + 0x83dc8) + -0x157c,0);
  uVar19 = (**(code **)(pcStack_d8 + -0x77c8))(ppcVar7);
  uStack_e0 = *(undefined8 *)(*(int *)(pcStack_d8 + -0x7fc8) + 0x40b8);
  ppcVar13 = ppcVar7;
  iVar5 = fd_write(pcVar10,ppcVar7,uVar19);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcStack_d8 + -0x7728))(ppcVar7);
  }
  else {
    (**(code **)(pcStack_d8 + -0x7728))();
    ppcVar13 = &pcStack_d0;
    iVar5 = ftp_response(pcVar10);
    pcVar3 = pcStack_d0;
    if (iVar5 == 7) {
      if (*pcStack_d0 == '5') {
        iVar5 = 0xf;
        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);
        pcVar10 = pcStack_d0;
      }
      else {
        iVar6 = *(int *)(pcStack_d8 + -0x7fc8);
        uVar19 = (**(code **)(pcStack_d8 + -0x794c))(pcStack_d0);
        (**(code **)(pcStack_d8 + -0x7888))(pcVar3,iVar6 + 0x4a48);
        ppcVar13 = (char **)(iVar6 + 0x4a48);
        pcVar10 = (char *)(**(code **)(pcStack_d8 + -0x7888))(0);
        *puVar8 = 2;
        if (pcVar10 == (char *)0x0) {
LAB_0002b8d8:
          *ppcVar4 = (char *)0x5;
        }
        else {
          ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1574);
          iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
          if (iVar6 == 0) {
            *ppcVar4 = (char *)0x1;
          }
          else {
            iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))
                              (pcVar10,*(int *)(pcStack_d8 + -0x7fc4) + -0x1570);
            if (iVar6 == 0) {
              iVar6 = *(int *)(pcStack_d8 + -0x7fc4);
              pcVar21 = *(code **)(pcStack_d8 + -0x7db0);
              *ppcVar4 = (char *)0x0;
              ppcVar13 = (char **)(iVar6 + -0x1568);
              iVar6 = (*pcVar21)(uVar19,ppcVar13,0x11);
              if (iVar6 == 0) {
                *puVar8 = 0;
              }
              else {
                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1554);
                iVar6 = (**(code **)(pcStack_d8 + -0x7db0))(uVar19,ppcVar13,0x29);
                if (iVar6 == 0) {
                  *puVar8 = 1;
                }
              }
            }
            else {
              ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1528);
              iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
              if (iVar6 != 0) {
                ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x151c);
                iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
                if (iVar6 != 0) {
                  ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1510);
                  iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
                  if (iVar6 == 0) {
                    *ppcVar4 = (char *)0x3;
                  }
                  else {
                    ppcVar13 = (char **)(*(int *)(pcStack_d8 + -0x7fc4) + -0x1508);
                    iVar6 = (**(code **)(pcStack_d8 + -0x7e9c))(pcVar10);
                    if (iVar6 != 0) goto LAB_0002b8d8;
                    *ppcVar4 = (char *)0x4;
                  }
                  goto LAB_0002b804;
                }
              }
              *ppcVar4 = (char *)0x2;
            }
          }
        }
LAB_0002b804:
        (**(code **)(pcStack_d8 + -0x7728))(uVar19);
        (**(code **)(pcStack_d8 + -0x7728))(pcStack_d0);
      }
    }
  }
  if (iStack_cc == *piVar15) {
    return iVar5;
  }
  pcVar21 = *(code **)(pcStack_d8 + -0x785c);
  pcVar22 = ftp_pwd;
  iVar6 = iStack_cc;
  (*pcVar21)();
  pcStack_118 = pcVar21 + 0x8ba8c;
  piVar16 = *(int **)(pcVar21 + 0x84298);
  iStack_10c = *piVar16;
  iStack_104 = iVar5;
  piStack_100 = piVar15;
  pcStack_fc = pcVar10;
  puStack_f8 = puVar8;
  pcStack_f4 = pcVar22;
  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83ac8) + -0x1500,0);
  puVar11 = (undefined8 *)(**(code **)(pcStack_118 + -0x77c8))(uVar19);
  uStack_120 = *(undefined8 *)(*(int *)(pcStack_118 + -0x7fc8) + 0x40b8);
  iVar5 = fd_write(iVar6,uVar19);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcStack_118 + -0x7728))(uVar19);
  }
  else {
    (**(code **)(pcStack_118 + -0x7728))();
    iVar5 = ftp_response(iVar6,&pcStack_110);
    if (iVar5 == 7) {
      iVar6 = *(int *)(pcStack_118 + -0x7fc4);
      if (*pcStack_110 != '5') {
        (**(code **)(pcStack_118 + -0x7888))(pcStack_110,iVar6 + -0x3d0);
        iVar6 = (**(code **)(pcStack_118 + -0x7888))(0,iVar6 + -0x3d0);
        if (iVar6 != 0) {
          (**(code **)(pcStack_118 + -0x7728))(*ppcVar13);
          pcVar21 = *(code **)(pcStack_118 + -0x7fa4);
          *ppcVar13 = (char *)0x0;
          pcVar10 = (char *)(*pcVar21)(iVar6);
          pcVar21 = *(code **)(pcStack_118 + -0x7728);
          *ppcVar13 = pcVar10;
          (*pcVar21)(pcStack_110);
          goto LAB_0002bae8;
        }
      }
      iVar5 = 0xf;
      (**(code **)(pcStack_118 + -0x7728))(pcStack_110);
    }
  }
LAB_0002bae8:
  if (iStack_10c == *piVar16) {
    return iVar5;
  }
  pcVar21 = *(code **)(pcStack_118 + -0x785c);
  pcVar22 = ftp_size;
  iVar14 = iStack_10c;
  (*pcVar21)();
  piVar15 = *(int **)(pcVar21 + 0x840f4);
  iStack_14c = *piVar15;
  iStack_148 = iVar5;
  piStack_144 = piVar16;
  iStack_140 = iVar6;
  ppcStack_13c = ppcVar13;
  ppcStack_138 = ppcVar4;
  pcStack_134 = pcVar22;
  uVar19 = FUN_00029120(*(int *)(pcVar21 + 0x83924) + -0x14fc);
  uVar12 = (**(code **)(pcVar21 + 0x84120))(uVar19);
  iVar5 = fd_write(iVar14,uVar19,uVar12);
  if (iVar5 < 0) {
    iVar5 = 0x2c;
    (**(code **)(pcVar21 + 0x841c0))(uVar19);
    *(undefined4 *)((int)puVar11 + 4) = 0;
    *(undefined4 *)puVar11 = 0;
  }
  else {
    (**(code **)(pcVar21 + 0x841c0))();
    iVar5 = ftp_response(iVar14,&pcStack_150);
    pcVar10 = pcStack_150;
    if (iVar5 == 7) {
      if (*pcStack_150 == '5') {
        pcVar22 = *(code **)(pcVar21 + 0x841c0);
      }
      else {
        piVar16 = (int *)(**(code **)(pcVar21 + 0x84348))();
        *piVar16 = 0;
        uVar23 = (**(code **)(pcVar21 + 0x841f4))(pcVar10 + 4,0,10);
        iVar6 = *piVar16;
        *puVar11 = uVar23;
        pcVar22 = *(code **)(pcVar21 + 0x841c0);
        if (iVar6 == 0) {
          (*pcVar22)(pcStack_150);
          goto LAB_0002bc24;
        }
      }
      (*pcVar22)(pcStack_150);
    }
    *(undefined4 *)((int)puVar11 + 4) = 0;
    *(undefined4 *)puVar11 = 0;
  }
LAB_0002bc24:
  if (iStack_14c == *piVar15) {
    return iVar5;
  }
  pcVar21 = *(code **)(pcVar21 + 0x8408c);
  iVar5 = iStack_14c;
  (*pcVar21)();
  if (iVar5 == 0) {
    return 0x49;
  }
  iVar6 = (**(code **)(pcVar21 + 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;
}

