
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

CURLcode smtp_statemach_act(connectdata *conn)

{
  anon_union_188_10_26c073a1_for_proto *pp;
  saslstate *sasl;
  char **ppcVar1;
  char cVar2;
  curl_socket_t sockfd;
  Curl_easy *pCVar3;
  size_t sVar4;
  void *pvVar5;
  int iVar6;
  int iVar7;
  curl_usessl cVar8;
  _Bool _Var9;
  CURLcode CVar10;
  Curl_easy *pCVar11;
  size_t sVar12;
  saslprogress sVar13;
  char *pcVar14;
  uint uVar15;
  byte *ptr;
  byte *pbVar16;
  undefined4 *puVar17;
  saslprogress maxlen;
  int in_GS_OFFSET;
  CURLcode local_54;
  int smtpcode;
  size_t nread;
  saslprogress progress;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x5cba9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  nread = 0;
  sockfd = conn->sock[0];
  pCVar3 = conn->data;
  pp = &conn->proto;
  if ((conn->proto).ftpc.entrypath == (char *)0x5) {
    local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);
    if (local_54 == CURLE_OK) {
      if ((conn->proto).ftpc.entrypath != (char *)0x5) {
        (conn->proto).sshc.readdir_totalLen = 5;
      }
      if ((conn->proto).httpc.binsettings[0x38] == '\0') {
LAB_0005ce7a:
        local_54 = CURLE_OK;
      }
      else {
        conn->tls_upgraded = true;
        (conn->proto).sshc.slash_pos = (char *)0x0;
        conn->handler = &Curl_handler_smtps;
        (conn->proto).httpc.binlen = 0;
        (conn->proto).smtpc.tls_supported = false;
        (conn->proto).smtpc.auth_supported = false;
        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);
        if (local_54 == CURLE_OK) {
          (conn->proto).sshc.readdir_totalLen = 2;
        }
      }
    }
  }
  else {
    if ((conn->proto).ftpc.pp.sendleft == 0) {
LAB_0005cc28:
      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);
      iVar7 = smtpcode;
      local_54 = CVar10;
      if (CVar10 != CURLE_OK) goto LAB_0005cdac;
      sVar4 = (conn->proto).sshc.readdir_totalLen;
      if (sVar4 == 0xc) {
        if (smtpcode != 0) goto _L272;
        goto LAB_0005cdac;
      }
      if (smtpcode == 1) {
        switch(sVar4) {
        default:
          goto _L272;
        case 1:
_L286:
          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);
          local_54 = CURLE_WEIRD_SERVER_REPLY;
          break;
        case 2:
          goto _L282;
        case 3:
          goto _L281;
        case 4:
_L399:
          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;
          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);
          local_54 = CURLE_USE_SSL_FAILED;
          break;
        case 6:
          goto _L279;
        case 7:
          goto _L278;
        case 8:
          goto _L277;
        case 9:
          goto _L276;
        case 10:
          goto _L275;
        case 0xb:
_L400:
          (conn->proto).ftpc.entrypath = (char *)0x0;
          local_54 = CURLE_RECV_ERROR;
        }
        goto LAB_0005cdac;
      }
      (pCVar3->info).httpcode = smtpcode;
      if (smtpcode == 0) goto LAB_0005ce7a;
      switch(sVar4) {
      case 1:
        if (99 < smtpcode - 200U) goto _L286;
LAB_0005cfaf:
        (conn->proto).sshc.slash_pos = (char *)0x0;
        (conn->proto).httpc.binlen = 0;
        (conn->proto).smtpc.tls_supported = false;
        (conn->proto).smtpc.auth_supported = false;
        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);
        if (local_54 == CURLE_OK) {
          (conn->proto).sshc.readdir_totalLen = 2;
          goto LAB_0005cd48;
        }
        goto LAB_0005cdac;
      case 2:
_L282:
        pCVar11 = conn->data;
        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {
          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {
            (conn->proto).httpc.binlen = 0;
            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);
            if (local_54 == CURLE_OK) {
              (conn->proto).sshc.readdir_totalLen = 3;
              goto LAB_0005cd48;
            }
          }
          else {
            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);
            local_54 = CURLE_REMOTE_ACCESS_DENIED;
          }
          goto LAB_0005cdac;
        }
        pcVar14 = (pCVar11->state).buffer;
        sVar12 = strlen(pcVar14);
        uVar15 = sVar12 - 4;
        if (uVar15 < 8) {
          if (3 < uVar15) {
            if (*(int *)(pcVar14 + 4) == 0x455a4953) {
LAB_0005d2b2:
              (conn->proto).smtpc.size_supported = true;
            }
            else if (uVar15 != 4) goto LAB_0005d46b;
          }
LAB_0005d18e:
          if (iVar7 == 1) goto LAB_0005cd48;
        }
        else {
          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {
            (conn->proto).smtpc.tls_supported = true;
            goto LAB_0005d18e;
          }
          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;
LAB_0005d46b:
          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;
          (conn->proto).smtpc.auth_supported = true;
          sVar13 = sVar12 - 9;
          if (sVar13 != SASL_IDLE) {
            ptr = (byte *)(pcVar14 + 9);
            do {
              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {
                pbVar16 = ptr + 1;
                sVar13 = sVar13 - SASL_INPROGRESS;
              }
              else {
                maxlen = SASL_IDLE;
                do {
                  maxlen = maxlen + SASL_INPROGRESS;
                  pbVar16 = ptr + maxlen;
                  if (maxlen == sVar13) {
                    sVar13 = SASL_IDLE;
                    goto LAB_0005d5b9;
                  }
                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||
                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));
                sVar13 = sVar13 - maxlen;
LAB_0005d5b9:
                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);
                if ((uVar15 != 0) && (progress == maxlen)) {
                  ppcVar1 = &(conn->proto).sshc.slash_pos;
                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);
                }
              }
              ptr = pbVar16;
            } while (sVar13 != SASL_IDLE);
          }
          if (iVar7 == 1) goto LAB_0005d147;
        }
        cVar8 = (pCVar11->set).use_ssl;
        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {
          if ((conn->proto).smtpc.tls_supported != false) {
            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");
            if (local_54 == CURLE_OK) {
              (conn->proto).sshc.readdir_totalLen = 4;
              goto LAB_0005cd48;
            }
            goto LAB_0005cdac;
          }
          if (cVar8 != CURLUSESSL_TRY) {
            Curl_failf(pCVar11,"STARTTLS not supported.");
            local_54 = CURLE_USE_SSL_FAILED;
            goto LAB_0005cdac;
          }
        }
LAB_0005d1e8:
        if ((conn->proto).smtpc.auth_supported != false) {
          sasl = &(conn->proto).imapc.sasl.state;
          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);
          if (_Var9) {
            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);
            if (local_54 == CURLE_OK) {
              if (progress == SASL_INPROGRESS) {
                (conn->proto).sshc.readdir_totalLen = 6;
                goto LAB_0005cd48;
              }
              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");
              local_54 = CURLE_LOGIN_DENIED;
            }
            goto LAB_0005cdac;
          }
        }
        break;
      case 3:
_L281:
        if (99 < smtpcode - 200U) {
          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);
          local_54 = CURLE_REMOTE_ACCESS_DENIED;
          goto LAB_0005cdac;
        }
        break;
      case 4:
        if (smtpcode != 0xdc) goto _L399;
        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);
        if (local_54 == CURLE_OK) {
          if ((conn->proto).ftpc.entrypath != (char *)0x5) {
            (conn->proto).sshc.readdir_totalLen = 5;
          }
          if ((conn->proto).httpc.binsettings[0x38] != '\0') {
            conn->tls_upgraded = true;
            conn->handler = &Curl_handler_smtps;
            goto LAB_0005cfaf;
          }
          goto LAB_0005cd48;
        }
        goto LAB_0005cdac;
      case 6:
_L279:
        pCVar11 = conn->data;
        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,
                                      &progress);
        if (local_54 != CURLE_OK) goto LAB_0005cdac;
        if (progress == SASL_IDLE) {
          Curl_failf(pCVar11,"Authentication cancelled");
          local_54 = CURLE_LOGIN_DENIED;
          goto LAB_0005cdac;
        }
        if (progress != SASL_DONE) goto LAB_0005d147;
        break;
      case 7:
_L278:
        pCVar11 = conn->data;
        pvVar5 = (pCVar11->req).protop;
        iVar6 = *(int *)((int)pvVar5 + 8);
        if (iVar6 == 0) {
          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;
        }
        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {
LAB_0005ce08:
          Curl_failf(pCVar11,"Command failed: %d",smtpcode);
          local_54 = CURLE_RECV_ERROR;
          goto LAB_0005cdac;
        }
        if ((pCVar11->set).opt_no_body == false) {
          pcVar14 = (pCVar11->state).buffer;
          sVar12 = strlen(pcVar14);
          pcVar14[sVar12] = '\n';
          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);
          pcVar14[sVar12] = '\0';
          if (iVar7 != 1) {
            if ((*(int *)((int)pvVar5 + 8) != 0) &&
               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,
               iVar7 != 0)) {
              pvVar5 = (conn->data->req).protop;
              puVar17 = *(undefined4 **)((int)pvVar5 + 8);
              pcVar14 = *(char **)((int)pvVar5 + 4);
              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;
              if (pcVar14 == (char *)0x0) {
                pcVar14 = "HELP";
              }
              else if (*pcVar14 == '\0') {
                pcVar14 = "HELP";
              }
              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);
              goto LAB_0005d0bf;
            }
            (conn->proto).ftpc.entrypath = (char *)0x0;
          }
          if (local_54 != CURLE_OK) goto LAB_0005cdac;
LAB_0005d147:
          local_54 = CVar10;
          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;
        }
        else {
          if (smtpcode == 1) goto LAB_0005cd48;
          if (iVar6 == 0) break;
          iVar7 = *(int *)(iVar6 + 4);
          *(int *)((int)pvVar5 + 8) = iVar7;
          if (iVar7 == 0) {
            (conn->proto).ftpc.entrypath = (char *)0x0;
            goto LAB_0005cdac;
          }
          pvVar5 = (pCVar11->req).protop;
          puVar17 = *(undefined4 **)((int)pvVar5 + 8);
          pcVar14 = *(char **)((int)pvVar5 + 4);
LAB_0005d094:
          if (pcVar14 == (char *)0x0) {
            pcVar14 = "VRFY";
          }
          else if (*pcVar14 == '\0') {
            pcVar14 = "VRFY";
          }
          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);
LAB_0005d0bf:
          if (local_54 != CURLE_OK) goto LAB_0005cdac;
          (conn->proto).sshc.readdir_totalLen = 7;
        }
LAB_0005cd48:
        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);
        local_54 = CVar10;
        if (!_Var9) goto LAB_0005cdac;
        goto LAB_0005cc28;
      case 8:
_L277:
        if (smtpcode - 200U < 100) {
          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);
          cVar2 = *pcVar14;
          goto joined_r0x0005cd1e;
        }
        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);
        local_54 = CURLE_SEND_ERROR;
        goto LAB_0005cdac;
      case 9:
_L276:
        pCVar11 = conn->data;
        if (99 < smtpcode - 200U) {
          pcVar14 = "RCPT failed: %d";
          goto LAB_0005ccd1;
        }
        pvVar5 = (pCVar11->req).protop;
        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);
        *(undefined4 **)((int)pvVar5 + 8) = puVar17;
        if (puVar17 == (undefined4 *)0x0) {
          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);
          if (local_54 == CURLE_OK) {
            (conn->proto).sshc.readdir_totalLen = 10;
            goto LAB_0005cd48;
          }
        }
        else {
          pcVar14 = (char *)*puVar17;
          cVar2 = *pcVar14;
joined_r0x0005cd1e:
          if (cVar2 == '<') {
            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);
          }
          else {
            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);
          }
          if (local_54 == CURLE_OK) {
            (conn->proto).sshc.readdir_totalLen = 9;
            goto LAB_0005cd48;
          }
        }
        goto LAB_0005cdac;
      case 10:
_L275:
        pCVar11 = conn->data;
        if (smtpcode == 0x162) {
          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);
          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);
          (conn->proto).ftpc.entrypath = (char *)0x0;
          goto LAB_0005ce7a;
        }
        pcVar14 = "DATA failed: %d";
LAB_0005ccd1:
        Curl_failf(pCVar11,pcVar14,smtpcode);
        local_54 = CURLE_SEND_ERROR;
        goto LAB_0005cdac;
      case 0xb:
        if (smtpcode != 0xfa) goto _L400;
      }
_L272:
      (conn->proto).ftpc.entrypath = (char *)0x0;
      goto LAB_0005ce7a;
    }
    local_54 = Curl_pp_flushsend(&(pp->ftpc).pp);
  }
LAB_0005cdac:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return local_54;
}



/* WARNING: Type propagation algorithm not settling */

int FUN_0005cba0(void)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  int unaff_EBX;
  int in_GS_OFFSET;
  int *unaff_retaddr;
  int local_58;
  int local_30 [3];
  int local_24;
  undefined4 uStack_14;
  
  uStack_14 = 0x5cba9;
  entry();
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  local_30[1] = 0;
  iVar3 = *unaff_retaddr;
  piVar1 = unaff_retaddr + 0x129;
  if (unaff_retaddr[0x137] == 5) {
    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);
    if (local_58 != 0) goto LAB_0005cdac;
    if (unaff_retaddr[0x137] != 5) {
      unaff_retaddr[0x137] = 5;
    }
    if ((char)unaff_retaddr[0x138] != '\0') {
      *(undefined1 *)(unaff_retaddr + 0x92) = 1;
      unaff_retaddr[0x13c] = 0;
      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;
      unaff_retaddr[0x13e] = 0;
      *(undefined1 *)(unaff_retaddr + 0x140) = 0;
      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;
      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);
      if (local_58 == 0) {
        unaff_retaddr[0x137] = 2;
      }
      goto LAB_0005cdac;
    }
  }
  else {
    if (unaff_retaddr[0x12f] != 0) {
      local_58 = FUN_0005e090(piVar1);
      goto LAB_0005cdac;
    }
    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);
    if (local_58 != 0) goto LAB_0005cdac;
    uVar2 = unaff_retaddr[0x137];
    if (uVar2 == 0xc) {
      if (local_30[0] == 0) goto LAB_0005cdac;
    }
    else if (local_30[0] == 1) {
      if (uVar2 < 0xc) {
                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()
        ;
        return iVar3;
      }
    }
    else {
      *(int *)(iVar3 + 0xf48) = local_30[0];
      if (local_30[0] == 0) goto LAB_0005ce7a;
      if (uVar2 < 0xc) {
                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()
        ;
        return iVar3;
      }
    }
    unaff_retaddr[0x137] = 0;
  }
LAB_0005ce7a:
  local_58 = 0;
LAB_0005cdac:
  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00082f60();
  }
  return local_58;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00019ed0
ADD EBX,0x59c37
SUB ESP,0x4c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x3c],EAX
XOR EAX,EAX
MOV EBP,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x34],0x0
MOV EAX,dword ptr [EBP + 0x190]
CMP dword ptr [EBP + 0x4dc],0x5
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBP + 0x4a4]
MOV dword ptr [ESP + 0x4],EAX
JZ 0x0005d3a8
LEA EAX,[ESP + 0x34]
MOV EDX,dword ptr [EBP + 0x4bc]
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[ESP + 0x30]
MOV dword ptr [ESP + 0x10],EAX
TEST EDX,EDX
JNZ 0x0005d350
LEA EAX,[EBX + 0xfffd5238]
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBX + 0xfffff4c0]
MOV dword ptr [ESP + 0x24],EAX
LEA ESI,[ESI]
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0x18]
CALL 0x0005dc60
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0005cdac
MOV EAX,dword ptr [EBP + 0x4dc]
MOV ESI,dword ptr [ESP + 0x30]
CMP EAX,0xc
JZ 0x0005cf78
CMP ESI,0x1
JZ 0x0005cf88
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [EDX + 0xf48],ESI
TEST ESI,ESI
JZ 0x0005ce7a
CMP EAX,0xb
JA 0x0005ce70
MOV EDI,dword ptr [EBX + EAX*0x4 + 0xfffd5288]
ADD EDI,EBX
JMP EDI
MOV ECX,dword ptr [ESP + 0x3c]
XOR ECX,dword ptr GS:[0x14]
MOV EAX,dword ptr [ESP + 0x8]
JNZ 0x0005d645
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [EBP + 0x4dc],0x0
MOV dword ptr [ESP + 0x8],0x0
JMP 0x0005cdac
TEST ESI,ESI
JZ 0x0005cdac
JMP 0x0005ce70
CMP EAX,0xb
JA 0x0005ce70
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfffd52b8]
ADD ECX,EBX
JMP ECX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x10]
CALL 0x0005e090
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
JMP 0x0005cdac
SUB ESP,0x4
LEA EAX,[EBP + 0x4e0]
PUSH EAX
PUSH 0x0
PUSH EBP
CALL 0x000816b0
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0005cdac
CMP dword ptr [EBP + 0x4dc],0x5
JZ 0x0005d3dc
MOV dword ptr [EBP + 0x4dc],0x5
CMP byte ptr [EBP + 0x4e0],0x0
JZ 0x0005ce7a
LEA EAX,[EBX + 0xfffff4c0]
SUB ESP,0x4
MOV byte ptr [EBP + 0x248],0x1
MOV dword ptr [EBP + 0x4f0],0x0
MOV dword ptr [EBP + 0x27c],EAX
LEA EAX,[EBX + 0xfffd51a5]
MOV dword ptr [EBP + 0x4f8],0x0
MOV byte ptr [EBP + 0x500],0x0
MOV byte ptr [EBP + 0x502],0x0
PUSH dword ptr [EBP + 0x4e4]
PUSH EAX
PUSH dword ptr [ESP + 0x10]
CALL 0x0005dc30
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0005cdac
MOV dword ptr [EBP + 0x4dc],0x2
JMP 0x0005cdac
CALL 0x00082f60
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint FUN_0005cba0(void)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  int local_58;\n  int local_30 [3];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_30[1] = 0;\n  iVar3 = *unaff_retaddr;\n  piVar1 = unaff_retaddr + 0x129;\n  if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }\nLAB_0005ce7a:\n  local_58 = 0;\nLAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00082f60();\n  }\n  return local_58;\n}\n\n" comment (function_definition "int FUN_0005cba0(void)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  int local_58;\n  int local_30 [3];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_30[1] = 0;\n  iVar3 = *unaff_retaddr;\n  piVar1 = unaff_retaddr + 0x129;\n  if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }\nLAB_0005ce7a:\n  local_58 = 0;\nLAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00082f60();\n  }\n  return local_58;\n}" primitive_type (function_declarator "FUN_0005cba0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  int local_58;\n  int local_30 [3];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_30[1] = 0;\n  iVar3 = *unaff_retaddr;\n  piVar1 = unaff_retaddr + 0x129;\n  if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }\nLAB_0005ce7a:\n  local_58 = 0;\nLAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00082f60();\n  }\n  return local_58;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int *unaff_retaddr;" primitive_type (pointer_declarator "*unaff_retaddr" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_30 [3];" primitive_type (array_declarator "local_30 [3]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x5cba9;" (assignment_expression "uStack_14 = 0x5cba9" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_30[1] = 0;" (assignment_expression "local_30[1] = 0" (subscript_expression "local_30[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = *unaff_retaddr;" (assignment_expression "iVar3 = *unaff_retaddr" identifier = (pointer_expression "*unaff_retaddr" * identifier)) ;) (expression_statement "piVar1 = unaff_retaddr + 0x129;" (assignment_expression "piVar1 = unaff_retaddr + 0x129" identifier = (binary_expression "unaff_retaddr + 0x129" identifier + number_literal)) ;) (if_statement "if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }" if (parenthesized_expression "(unaff_retaddr[0x137] == 5)" ( (binary_expression "unaff_retaddr[0x137] == 5" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }" { (expression_statement "local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);" (assignment_expression "local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138)" identifier = (call_expression "FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138)" identifier (argument_list "(unaff_retaddr,0,unaff_retaddr + 0x138)" ( identifier , number_literal , (binary_expression "unaff_retaddr + 0x138" identifier + number_literal) )))) ;) (if_statement "if (local_58 != 0) goto LAB_0005cdac;" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (if_statement "if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }" if (parenthesized_expression "(unaff_retaddr[0x137] != 5)" ( (binary_expression "unaff_retaddr[0x137] != 5" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      unaff_retaddr[0x137] = 5;\n    }" { (expression_statement "unaff_retaddr[0x137] = 5;" (assignment_expression "unaff_retaddr[0x137] = 5" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }" if (parenthesized_expression "((char)unaff_retaddr[0x138] != '\0')" ( (binary_expression "(char)unaff_retaddr[0x138] != '\0'" (cast_expression "(char)unaff_retaddr[0x138]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_retaddr[0x138]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }" { (expression_statement "*(undefined1 *)(unaff_retaddr + 0x92) = 1;" (assignment_expression "*(undefined1 *)(unaff_retaddr + 0x92) = 1" (pointer_expression "*(undefined1 *)(unaff_retaddr + 0x92)" * (cast_expression "(undefined1 *)(unaff_retaddr + 0x92)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x92)" ( (binary_expression "unaff_retaddr + 0x92" identifier + number_literal) )))) = number_literal) ;) (expression_statement "unaff_retaddr[0x13c] = 0;" (assignment_expression "unaff_retaddr[0x13c] = 0" (subscript_expression "unaff_retaddr[0x13c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;" (assignment_expression "unaff_retaddr[0x9f] = unaff_EBX + 0x590f7" (subscript_expression "unaff_retaddr[0x9f]" identifier [ number_literal ]) = (binary_expression "unaff_EBX + 0x590f7" identifier + number_literal)) ;) (expression_statement "unaff_retaddr[0x13e] = 0;" (assignment_expression "unaff_retaddr[0x13e] = 0" (subscript_expression "unaff_retaddr[0x13e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(unaff_retaddr + 0x140) = 0;" (assignment_expression "*(undefined1 *)(unaff_retaddr + 0x140) = 0" (pointer_expression "*(undefined1 *)(unaff_retaddr + 0x140)" * (cast_expression "(undefined1 *)(unaff_retaddr + 0x140)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x140)" ( (binary_expression "unaff_retaddr + 0x140" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)unaff_retaddr + 0x502) = 0;" (assignment_expression "*(undefined1 *)((int)unaff_retaddr + 0x502) = 0" (pointer_expression "*(undefined1 *)((int)unaff_retaddr + 0x502)" * (cast_expression "(undefined1 *)((int)unaff_retaddr + 0x502)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_retaddr + 0x502)" ( (binary_expression "(int)unaff_retaddr + 0x502" (cast_expression "(int)unaff_retaddr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);" (assignment_expression "local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139])" identifier = (call_expression "FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139])" identifier (argument_list "(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139])" ( identifier , (binary_expression "unaff_EBX + 0x2eddc" identifier + number_literal) , (subscript_expression "unaff_retaddr[0x139]" identifier [ number_literal ]) )))) ;) (if_statement "if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }" if (parenthesized_expression "(local_58 == 0)" ( (binary_expression "local_58 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_retaddr[0x137] = 2;\n      }" { (expression_statement "unaff_retaddr[0x137] = 2;" (assignment_expression "unaff_retaddr[0x137] = 2" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) = number_literal) ;) })) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }" else (compound_statement "{\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }" { (if_statement "if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }" if (parenthesized_expression "(unaff_retaddr[0x12f] != 0)" ( (binary_expression "unaff_retaddr[0x12f] != 0" (subscript_expression "unaff_retaddr[0x12f]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }" { (expression_statement "local_58 = FUN_0005e090(piVar1);" (assignment_expression "local_58 = FUN_0005e090(piVar1)" identifier = (call_expression "FUN_0005e090(piVar1)" identifier (argument_list "(piVar1)" ( identifier )))) ;) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) (expression_statement "local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);" (assignment_expression "local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1)" identifier = (call_expression "FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1)" identifier (argument_list "(unaff_retaddr[100],piVar1,local_30,local_30 + 1)" ( (subscript_expression "unaff_retaddr[100]" identifier [ number_literal ]) , identifier , identifier , (binary_expression "local_30 + 1" identifier + number_literal) )))) ;) (if_statement "if (local_58 != 0) goto LAB_0005cdac;" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (expression_statement "uVar2 = unaff_retaddr[0x137];" (assignment_expression "uVar2 = unaff_retaddr[0x137]" identifier = (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ])) ;) (if_statement "if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" if (parenthesized_expression "(uVar2 == 0xc)" ( (binary_expression "uVar2 == 0xc" identifier == number_literal) )) (compound_statement "{\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }" { (if_statement "if (local_30[0] == 0) goto LAB_0005cdac;" if (parenthesized_expression "(local_30[0] == 0)" ( (binary_expression "local_30[0] == 0" (subscript_expression "local_30[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) }) (else_clause "else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" else (if_statement "if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" if (parenthesized_expression "(local_30[0] == 1)" ( (binary_expression "local_30[0] == 1" (subscript_expression "local_30[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" { (if_statement "if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" if (parenthesized_expression "(uVar2 < 0xc)" ( (binary_expression "uVar2 < 0xc" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" { comment comment (expression_statement "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;" (assignment_expression "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()" identifier = (call_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()" (parenthesized_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))" ( (pointer_expression "*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX)" * (cast_expression "(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX)" ( (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX" (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4)" (pointer_expression "&UNK_00059c37" & identifier) + (pointer_expression "*(int *)(unaff_EBX + 0x2eeef + uVar2 * 4)" * (cast_expression "(int *)(unaff_EBX + 0x2eeef + uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x2eeef + uVar2 * 4)" ( (binary_expression "unaff_EBX + 0x2eeef + uVar2 * 4" (binary_expression "unaff_EBX + 0x2eeef" identifier + number_literal) + (binary_expression "uVar2 * 4" identifier * number_literal)) ))))) + identifier) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) }) (else_clause "else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" else (compound_statement "{\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" { (expression_statement "*(int *)(iVar3 + 0xf48) = local_30[0];" (assignment_expression "*(int *)(iVar3 + 0xf48) = local_30[0]" (pointer_expression "*(int *)(iVar3 + 0xf48)" * (cast_expression "(int *)(iVar3 + 0xf48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xf48)" ( (binary_expression "iVar3 + 0xf48" identifier + number_literal) )))) = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) (if_statement "if (local_30[0] == 0) goto LAB_0005ce7a;" if (parenthesized_expression "(local_30[0] == 0)" ( (binary_expression "local_30[0] == 0" (subscript_expression "local_30[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0005ce7a;" goto statement_identifier ;)) (if_statement "if (uVar2 < 0xc) {\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" if (parenthesized_expression "(uVar2 < 0xc)" ( (binary_expression "uVar2 < 0xc" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" { comment comment (expression_statement "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;" (assignment_expression "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()" identifier = (call_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()" (parenthesized_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))" ( (pointer_expression "*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX)" * (cast_expression "(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX)" ( (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX" (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4)" (pointer_expression "&UNK_00059c37" & identifier) + (pointer_expression "*(int *)(unaff_EBX + 0x2eebf + uVar2 * 4)" * (cast_expression "(int *)(unaff_EBX + 0x2eebf + uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x2eebf + uVar2 * 4)" ( (binary_expression "unaff_EBX + 0x2eebf + uVar2 * 4" (binary_expression "unaff_EBX + 0x2eebf" identifier + number_literal) + (binary_expression "uVar2 * 4" identifier * number_literal)) ))))) + identifier) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) }))))) (expression_statement "unaff_retaddr[0x137] = 0;" (assignment_expression "unaff_retaddr[0x137] = 0" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) = number_literal) ;) }))) (labeled_statement "LAB_0005ce7a:\n  local_58 = 0;" statement_identifier : (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00082f60();\n  }" statement_identifier : (if_statement "if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00082f60();\n  }" if (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00082f60();\n  }" { comment (expression_statement "FUN_00082f60();" (call_expression "FUN_00082f60()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return local_58;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nCURLcode smtp_statemach_act(connectdata *conn)\n\n{\n  anon_union_188_10_26c073a1_for_proto *pp;\n  saslstate *sasl;\n  char **ppcVar1;\n  char cVar2;\n  curl_socket_t sockfd;\n  Curl_easy *pCVar3;\n  size_t sVar4;\n  void *pvVar5;\n  int iVar6;\n  int iVar7;\n  curl_usessl cVar8;\n  _Bool _Var9;\n  CURLcode CVar10;\n  Curl_easy *pCVar11;\n  size_t sVar12;\n  saslprogress sVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *ptr;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  saslprogress maxlen;\n  int in_GS_OFFSET;\n  CURLcode local_54;\n  int smtpcode;\n  size_t nread;\n  saslprogress progress;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  nread = 0;\n  sockfd = conn->sock[0];\n  pCVar3 = conn->data;\n  pp = &conn->proto;\n  if ((conn->proto).ftpc.entrypath == (char *)0x5) {\n    local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n    if (local_54 == CURLE_OK) {\n      if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n        (conn->proto).sshc.readdir_totalLen = 5;\n      }\n      if ((conn->proto).httpc.binsettings[0x38] == '\0') {\nLAB_0005ce7a:\n        local_54 = CURLE_OK;\n      }\n      else {\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }\n    }\n  }\n  else {\n    if ((conn->proto).ftpc.pp.sendleft == 0) {\nLAB_0005cc28:\n      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);\n      iVar7 = smtpcode;\n      local_54 = CVar10;\n      if (CVar10 != CURLE_OK) goto LAB_0005cdac;\n      sVar4 = (conn->proto).sshc.readdir_totalLen;\n      if (sVar4 == 0xc) {\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }\n      if (smtpcode == 1) {\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }\n      (pCVar3->info).httpcode = smtpcode;\n      if (smtpcode == 0) goto LAB_0005ce7a;\n      switch(sVar4) {\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }\n_L272:\n      (conn->proto).ftpc.entrypath = (char *)0x0;\n      goto LAB_0005ce7a;\n    }\n    local_54 = Curl_pp_flushsend(&(pp->ftpc).pp);\n  }\nLAB_0005cdac:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_54;\n}\n\n" comment comment comment (function_definition "CURLcode smtp_statemach_act(connectdata *conn)\n\n{\n  anon_union_188_10_26c073a1_for_proto *pp;\n  saslstate *sasl;\n  char **ppcVar1;\n  char cVar2;\n  curl_socket_t sockfd;\n  Curl_easy *pCVar3;\n  size_t sVar4;\n  void *pvVar5;\n  int iVar6;\n  int iVar7;\n  curl_usessl cVar8;\n  _Bool _Var9;\n  CURLcode CVar10;\n  Curl_easy *pCVar11;\n  size_t sVar12;\n  saslprogress sVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *ptr;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  saslprogress maxlen;\n  int in_GS_OFFSET;\n  CURLcode local_54;\n  int smtpcode;\n  size_t nread;\n  saslprogress progress;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  nread = 0;\n  sockfd = conn->sock[0];\n  pCVar3 = conn->data;\n  pp = &conn->proto;\n  if ((conn->proto).ftpc.entrypath == (char *)0x5) {\n    local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n    if (local_54 == CURLE_OK) {\n      if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n        (conn->proto).sshc.readdir_totalLen = 5;\n      }\n      if ((conn->proto).httpc.binsettings[0x38] == '\0') {\nLAB_0005ce7a:\n        local_54 = CURLE_OK;\n      }\n      else {\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }\n    }\n  }\n  else {\n    if ((conn->proto).ftpc.pp.sendleft == 0) {\nLAB_0005cc28:\n      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);\n      iVar7 = smtpcode;\n      local_54 = CVar10;\n      if (CVar10 != CURLE_OK) goto LAB_0005cdac;\n      sVar4 = (conn->proto).sshc.readdir_totalLen;\n      if (sVar4 == 0xc) {\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }\n      if (smtpcode == 1) {\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }\n      (pCVar3->info).httpcode = smtpcode;\n      if (smtpcode == 0) goto LAB_0005ce7a;\n      switch(sVar4) {\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }\n_L272:\n      (conn->proto).ftpc.entrypath = (char *)0x0;\n      goto LAB_0005ce7a;\n    }\n    local_54 = Curl_pp_flushsend(&(pp->ftpc).pp);\n  }\nLAB_0005cdac:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_54;\n}" type_identifier (function_declarator "smtp_statemach_act(connectdata *conn)" identifier (parameter_list "(connectdata *conn)" ( (parameter_declaration "connectdata *conn" type_identifier (pointer_declarator "*conn" * identifier)) ))) (compound_statement "{\n  anon_union_188_10_26c073a1_for_proto *pp;\n  saslstate *sasl;\n  char **ppcVar1;\n  char cVar2;\n  curl_socket_t sockfd;\n  Curl_easy *pCVar3;\n  size_t sVar4;\n  void *pvVar5;\n  int iVar6;\n  int iVar7;\n  curl_usessl cVar8;\n  _Bool _Var9;\n  CURLcode CVar10;\n  Curl_easy *pCVar11;\n  size_t sVar12;\n  saslprogress sVar13;\n  char *pcVar14;\n  uint uVar15;\n  byte *ptr;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  saslprogress maxlen;\n  int in_GS_OFFSET;\n  CURLcode local_54;\n  int smtpcode;\n  size_t nread;\n  saslprogress progress;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  nread = 0;\n  sockfd = conn->sock[0];\n  pCVar3 = conn->data;\n  pp = &conn->proto;\n  if ((conn->proto).ftpc.entrypath == (char *)0x5) {\n    local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n    if (local_54 == CURLE_OK) {\n      if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n        (conn->proto).sshc.readdir_totalLen = 5;\n      }\n      if ((conn->proto).httpc.binsettings[0x38] == '\0') {\nLAB_0005ce7a:\n        local_54 = CURLE_OK;\n      }\n      else {\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }\n    }\n  }\n  else {\n    if ((conn->proto).ftpc.pp.sendleft == 0) {\nLAB_0005cc28:\n      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);\n      iVar7 = smtpcode;\n      local_54 = CVar10;\n      if (CVar10 != CURLE_OK) goto LAB_0005cdac;\n      sVar4 = (conn->proto).sshc.readdir_totalLen;\n      if (sVar4 == 0xc) {\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }\n      if (smtpcode == 1) {\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }\n      (pCVar3->info).httpcode = smtpcode;\n      if (smtpcode == 0) goto LAB_0005ce7a;\n      switch(sVar4) {\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }\n_L272:\n      (conn->proto).ftpc.entrypath = (char *)0x0;\n      goto LAB_0005ce7a;\n    }\n    local_54 = Curl_pp_flushsend(&(pp->ftpc).pp);\n  }\nLAB_0005cdac:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_54;\n}" { (declaration "anon_union_188_10_26c073a1_for_proto *pp;" type_identifier (pointer_declarator "*pp" * identifier) ;) (declaration "saslstate *sasl;" type_identifier (pointer_declarator "*sasl" * identifier) ;) (declaration "char **ppcVar1;" primitive_type (pointer_declarator "**ppcVar1" * (pointer_declarator "*ppcVar1" * identifier)) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "curl_socket_t sockfd;" type_identifier identifier ;) (declaration "Curl_easy *pCVar3;" type_identifier (pointer_declarator "*pCVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "void *pvVar5;" primitive_type (pointer_declarator "*pvVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "curl_usessl cVar8;" type_identifier identifier ;) (declaration "_Bool _Var9;" type_identifier identifier ;) (declaration "CURLcode CVar10;" type_identifier identifier ;) (declaration "Curl_easy *pCVar11;" type_identifier (pointer_declarator "*pCVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "saslprogress sVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "byte *ptr;" type_identifier (pointer_declarator "*ptr" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "saslprogress maxlen;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "CURLcode local_54;" type_identifier identifier ;) (declaration "int smtpcode;" primitive_type identifier ;) (declaration "size_t nread;" primitive_type identifier ;) (declaration "saslprogress progress;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x5cba9;" (assignment_expression "uStack_14 = 0x5cba9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "nread = 0;" (assignment_expression "nread = 0" identifier = number_literal) ;) (expression_statement "sockfd = conn->sock[0];" (assignment_expression "sockfd = conn->sock[0]" identifier = (subscript_expression "conn->sock[0]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pCVar3 = conn->data;" (assignment_expression "pCVar3 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (expression_statement "pp = &conn->proto;" (assignment_expression "pp = &conn->proto" identifier = (pointer_expression "&conn->proto" & (field_expression "conn->proto" identifier -> field_identifier))) ;) (if_statement "if ((conn->proto).ftpc.entrypath == (char *)0x5) {\n    local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n    if (local_54 == CURLE_OK) {\n      if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n        (conn->proto).sshc.readdir_totalLen = 5;\n      }\n      if ((conn->proto).httpc.binsettings[0x38] == '\0') {\nLAB_0005ce7a:\n        local_54 = CURLE_OK;\n      }\n      else {\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }\n    }\n  }\n  else {\n    if ((conn->proto).ftpc.pp.sendleft == 0) {\nLAB_0005cc28:\n      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);\n      iVar7 = smtpcode;\n      local_54 = CVar10;\n      if (CVar10 != CURLE_OK) goto LAB_0005cdac;\n      sVar4 = (conn->proto).sshc.readdir_totalLen;\n      if (sVar4 == 0xc) {\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }\n      if (smtpcode == 1) {\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }\n      (pCVar3->info).httpcode = smtpcode;\n      if (smtpcode == 0) goto LAB_0005ce7a;\n      switch(sVar4) {\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }\n_L272:\n      (conn->proto).ftpc.entrypath = (char *)0x0;\n      goto LAB_0005ce7a;\n    }\n    local_54 = Curl_pp_flushsend(&(pp->ftpc).pp);\n  }" if (parenthesized_expression "((conn->proto).ftpc.entrypath == (char *)0x5)" ( (binary_expression "(conn->proto).ftpc.entrypath == (char *)0x5" (field_expression "(conn->proto).ftpc.entrypath" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) == (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n    if (local_54 == CURLE_OK) {\n      if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n        (conn->proto).sshc.readdir_totalLen = 5;\n      }\n      if ((conn->proto).httpc.binsettings[0x38] == '\0') {\nLAB_0005ce7a:\n        local_54 = CURLE_OK;\n      }\n      else {\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }\n    }\n  }" { (expression_statement "local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);" (assignment_expression "local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone)" identifier = (call_expression "Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone)" identifier (argument_list "(conn,0,&(conn->proto).imapc.ssldone)" ( identifier , number_literal , (pointer_expression "&(conn->proto).imapc.ssldone" & (field_expression "(conn->proto).imapc.ssldone" (field_expression "(conn->proto).imapc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier)) )))) ;) (if_statement "if (local_54 == CURLE_OK) {\n      if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n        (conn->proto).sshc.readdir_totalLen = 5;\n      }\n      if ((conn->proto).httpc.binsettings[0x38] == '\0') {\nLAB_0005ce7a:\n        local_54 = CURLE_OK;\n      }\n      else {\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }\n    }" if (parenthesized_expression "(local_54 == CURLE_OK)" ( (binary_expression "local_54 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n      if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n        (conn->proto).sshc.readdir_totalLen = 5;\n      }\n      if ((conn->proto).httpc.binsettings[0x38] == '\0') {\nLAB_0005ce7a:\n        local_54 = CURLE_OK;\n      }\n      else {\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }\n    }" { (if_statement "if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n        (conn->proto).sshc.readdir_totalLen = 5;\n      }" if (parenthesized_expression "((conn->proto).ftpc.entrypath != (char *)0x5)" ( (binary_expression "(conn->proto).ftpc.entrypath != (char *)0x5" (field_expression "(conn->proto).ftpc.entrypath" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (conn->proto).sshc.readdir_totalLen = 5;\n      }" { (expression_statement "(conn->proto).sshc.readdir_totalLen = 5;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 5" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) })) (if_statement "if ((conn->proto).httpc.binsettings[0x38] == '\0') {\nLAB_0005ce7a:\n        local_54 = CURLE_OK;\n      }\n      else {\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }" if (parenthesized_expression "((conn->proto).httpc.binsettings[0x38] == '\0')" ( (binary_expression "(conn->proto).httpc.binsettings[0x38] == '\0'" (subscript_expression "(conn->proto).httpc.binsettings[0x38]" (field_expression "(conn->proto).httpc.binsettings" (field_expression "(conn->proto).httpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0005ce7a:\n        local_54 = CURLE_OK;\n      }" { (labeled_statement "LAB_0005ce7a:\n        local_54 = CURLE_OK;" statement_identifier : (expression_statement "local_54 = CURLE_OK;" (assignment_expression "local_54 = CURLE_OK" identifier = identifier) ;)) }) (else_clause "else {\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }" else (compound_statement "{\n        conn->tls_upgraded = true;\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        conn->handler = &Curl_handler_smtps;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }\n      }" { (expression_statement "conn->tls_upgraded = true;" (assignment_expression "conn->tls_upgraded = true" (field_expression "conn->tls_upgraded" identifier -> field_identifier) = true) ;) (expression_statement "(conn->proto).sshc.slash_pos = (char *)0x0;" (assignment_expression "(conn->proto).sshc.slash_pos = (char *)0x0" (field_expression "(conn->proto).sshc.slash_pos" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "conn->handler = &Curl_handler_smtps;" (assignment_expression "conn->handler = &Curl_handler_smtps" (field_expression "conn->handler" identifier -> field_identifier) = (pointer_expression "&Curl_handler_smtps" & identifier)) ;) (expression_statement "(conn->proto).httpc.binlen = 0;" (assignment_expression "(conn->proto).httpc.binlen = 0" (field_expression "(conn->proto).httpc.binlen" (field_expression "(conn->proto).httpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(conn->proto).smtpc.tls_supported = false;" (assignment_expression "(conn->proto).smtpc.tls_supported = false" (field_expression "(conn->proto).smtpc.tls_supported" (field_expression "(conn->proto).smtpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = false) ;) (expression_statement "(conn->proto).smtpc.auth_supported = false;" (assignment_expression "(conn->proto).smtpc.auth_supported = false" (field_expression "(conn->proto).smtpc.auth_supported" (field_expression "(conn->proto).smtpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = false) ;) (expression_statement "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);" (assignment_expression "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth)" identifier = (call_expression "Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth)" identifier (argument_list "(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (string_literal ""EHLO %s"" " string_content ") , (field_expression "(conn->proto).ftpc.dirdepth" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) )))) ;) (if_statement "if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }" if (parenthesized_expression "(local_54 == CURLE_OK)" ( (binary_expression "local_54 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n          (conn->proto).sshc.readdir_totalLen = 2;\n        }" { (expression_statement "(conn->proto).sshc.readdir_totalLen = 2;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 2" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) })) }))) })) }) (else_clause "else {\n    if ((conn->proto).ftpc.pp.sendleft == 0) {\nLAB_0005cc28:\n      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);\n      iVar7 = smtpcode;\n      local_54 = CVar10;\n      if (CVar10 != CURLE_OK) goto LAB_0005cdac;\n      sVar4 = (conn->proto).sshc.readdir_totalLen;\n      if (sVar4 == 0xc) {\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }\n      if (smtpcode == 1) {\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }\n      (pCVar3->info).httpcode = smtpcode;\n      if (smtpcode == 0) goto LAB_0005ce7a;\n      switch(sVar4) {\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }\n_L272:\n      (conn->proto).ftpc.entrypath = (char *)0x0;\n      goto LAB_0005ce7a;\n    }\n    local_54 = Curl_pp_flushsend(&(pp->ftpc).pp);\n  }" else (compound_statement "{\n    if ((conn->proto).ftpc.pp.sendleft == 0) {\nLAB_0005cc28:\n      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);\n      iVar7 = smtpcode;\n      local_54 = CVar10;\n      if (CVar10 != CURLE_OK) goto LAB_0005cdac;\n      sVar4 = (conn->proto).sshc.readdir_totalLen;\n      if (sVar4 == 0xc) {\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }\n      if (smtpcode == 1) {\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }\n      (pCVar3->info).httpcode = smtpcode;\n      if (smtpcode == 0) goto LAB_0005ce7a;\n      switch(sVar4) {\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }\n_L272:\n      (conn->proto).ftpc.entrypath = (char *)0x0;\n      goto LAB_0005ce7a;\n    }\n    local_54 = Curl_pp_flushsend(&(pp->ftpc).pp);\n  }" { (if_statement "if ((conn->proto).ftpc.pp.sendleft == 0) {\nLAB_0005cc28:\n      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);\n      iVar7 = smtpcode;\n      local_54 = CVar10;\n      if (CVar10 != CURLE_OK) goto LAB_0005cdac;\n      sVar4 = (conn->proto).sshc.readdir_totalLen;\n      if (sVar4 == 0xc) {\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }\n      if (smtpcode == 1) {\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }\n      (pCVar3->info).httpcode = smtpcode;\n      if (smtpcode == 0) goto LAB_0005ce7a;\n      switch(sVar4) {\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }\n_L272:\n      (conn->proto).ftpc.entrypath = (char *)0x0;\n      goto LAB_0005ce7a;\n    }" if (parenthesized_expression "((conn->proto).ftpc.pp.sendleft == 0)" ( (binary_expression "(conn->proto).ftpc.pp.sendleft == 0" (field_expression "(conn->proto).ftpc.pp.sendleft" (field_expression "(conn->proto).ftpc.pp" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\nLAB_0005cc28:\n      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);\n      iVar7 = smtpcode;\n      local_54 = CVar10;\n      if (CVar10 != CURLE_OK) goto LAB_0005cdac;\n      sVar4 = (conn->proto).sshc.readdir_totalLen;\n      if (sVar4 == 0xc) {\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }\n      if (smtpcode == 1) {\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }\n      (pCVar3->info).httpcode = smtpcode;\n      if (smtpcode == 0) goto LAB_0005ce7a;\n      switch(sVar4) {\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }\n_L272:\n      (conn->proto).ftpc.entrypath = (char *)0x0;\n      goto LAB_0005ce7a;\n    }" { (labeled_statement "LAB_0005cc28:\n      CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);" statement_identifier : (expression_statement "CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread);" (assignment_expression "CVar10 = Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread)" identifier = (call_expression "Curl_pp_readresp(sockfd,&(pp->ftpc).pp,&smtpcode,&nread)" identifier (argument_list "(sockfd,&(pp->ftpc).pp,&smtpcode,&nread)" ( identifier , (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (pointer_expression "&smtpcode" & identifier) , (pointer_expression "&nread" & identifier) )))) ;)) (expression_statement "iVar7 = smtpcode;" (assignment_expression "iVar7 = smtpcode" identifier = identifier) ;) (expression_statement "local_54 = CVar10;" (assignment_expression "local_54 = CVar10" identifier = identifier) ;) (if_statement "if (CVar10 != CURLE_OK) goto LAB_0005cdac;" if (parenthesized_expression "(CVar10 != CURLE_OK)" ( (binary_expression "CVar10 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (expression_statement "sVar4 = (conn->proto).sshc.readdir_totalLen;" (assignment_expression "sVar4 = (conn->proto).sshc.readdir_totalLen" identifier = (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (sVar4 == 0xc) {\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }" if (parenthesized_expression "(sVar4 == 0xc)" ( (binary_expression "sVar4 == 0xc" identifier == number_literal) )) (compound_statement "{\n        if (smtpcode != 0) goto _L272;\n        goto LAB_0005cdac;\n      }" { (if_statement "if (smtpcode != 0) goto _L272;" if (parenthesized_expression "(smtpcode != 0)" ( (binary_expression "smtpcode != 0" identifier != number_literal) )) (goto_statement "goto _L272;" goto statement_identifier ;)) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) (if_statement "if (smtpcode == 1) {\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }" if (parenthesized_expression "(smtpcode == 1)" ( (binary_expression "smtpcode == 1" identifier == number_literal) )) (compound_statement "{\n        switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }\n        goto LAB_0005cdac;\n      }" { (switch_statement "switch(sVar4) {\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }" switch (parenthesized_expression "(sVar4)" ( identifier )) (compound_statement "{\n        default:\n          goto _L272;\n        case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;\n        case 2:\n          goto _L282;\n        case 3:\n          goto _L281;\n        case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;\n        case 6:\n          goto _L279;\n        case 7:\n          goto _L278;\n        case 8:\n          goto _L277;\n        case 9:\n          goto _L276;\n        case 10:\n          goto _L275;\n        case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;\n        }" { (case_statement "default:\n          goto _L272;" default : (goto_statement "goto _L272;" goto statement_identifier ;)) (case_statement "case 1:\n_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);\n          local_54 = CURLE_WEIRD_SERVER_REPLY;\n          break;" case number_literal : (labeled_statement "_L286:\n          Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);" statement_identifier : (expression_statement "Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode);" (call_expression "Curl_failf(conn->data,"Got unexpected smtp-server response: %d",smtpcode)" identifier (argument_list "(conn->data,"Got unexpected smtp-server response: %d",smtpcode)" ( (field_expression "conn->data" identifier -> field_identifier) , (string_literal ""Got unexpected smtp-server response: %d"" " string_content ") , identifier ))) ;)) (expression_statement "local_54 = CURLE_WEIRD_SERVER_REPLY;" (assignment_expression "local_54 = CURLE_WEIRD_SERVER_REPLY" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n          goto _L282;" case number_literal : (goto_statement "goto _L282;" goto statement_identifier ;)) (case_statement "case 3:\n          goto _L281;" case number_literal : (goto_statement "goto _L281;" goto statement_identifier ;)) (case_statement "case 4:\n_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;\n          Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);\n          local_54 = CURLE_USE_SSL_FAILED;\n          break;" case number_literal : (labeled_statement "_L399:\n          if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;" statement_identifier : (if_statement "if ((conn->data->set).use_ssl == CURLUSESSL_TRY) goto LAB_0005d1e8;" if (parenthesized_expression "((conn->data->set).use_ssl == CURLUSESSL_TRY)" ( (binary_expression "(conn->data->set).use_ssl == CURLUSESSL_TRY" (field_expression "(conn->data->set).use_ssl" (parenthesized_expression "(conn->data->set)" ( (field_expression "conn->data->set" (field_expression "conn->data" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == identifier) )) (goto_statement "goto LAB_0005d1e8;" goto statement_identifier ;))) (expression_statement "Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode);" (call_expression "Curl_failf(conn->data,"STARTTLS denied, code %d",smtpcode)" identifier (argument_list "(conn->data,"STARTTLS denied, code %d",smtpcode)" ( (field_expression "conn->data" identifier -> field_identifier) , (string_literal ""STARTTLS denied, code %d"" " string_content ") , identifier ))) ;) (expression_statement "local_54 = CURLE_USE_SSL_FAILED;" (assignment_expression "local_54 = CURLE_USE_SSL_FAILED" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n          goto _L279;" case number_literal : (goto_statement "goto _L279;" goto statement_identifier ;)) (case_statement "case 7:\n          goto _L278;" case number_literal : (goto_statement "goto _L278;" goto statement_identifier ;)) (case_statement "case 8:\n          goto _L277;" case number_literal : (goto_statement "goto _L277;" goto statement_identifier ;)) (case_statement "case 9:\n          goto _L276;" case number_literal : (goto_statement "goto _L276;" goto statement_identifier ;)) (case_statement "case 10:\n          goto _L275;" case number_literal : (goto_statement "goto _L275;" goto statement_identifier ;)) (case_statement "case 0xb:\n_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          local_54 = CURLE_RECV_ERROR;" case number_literal : (labeled_statement "_L400:\n          (conn->proto).ftpc.entrypath = (char *)0x0;" statement_identifier : (expression_statement "(conn->proto).ftpc.entrypath = (char *)0x0;" (assignment_expression "(conn->proto).ftpc.entrypath = (char *)0x0" (field_expression "(conn->proto).ftpc.entrypath" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_54 = CURLE_RECV_ERROR;" (assignment_expression "local_54 = CURLE_RECV_ERROR" identifier = identifier) ;)) })) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) (expression_statement "(pCVar3->info).httpcode = smtpcode;" (assignment_expression "(pCVar3->info).httpcode = smtpcode" (field_expression "(pCVar3->info).httpcode" (parenthesized_expression "(pCVar3->info)" ( (field_expression "pCVar3->info" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (smtpcode == 0) goto LAB_0005ce7a;" if (parenthesized_expression "(smtpcode == 0)" ( (binary_expression "smtpcode == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005ce7a;" goto statement_identifier ;)) (switch_statement "switch(sVar4) {\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }" switch (parenthesized_expression "(sVar4)" ( identifier )) (compound_statement "{\n      case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;\n      case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;\n      case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;\n      case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;\n      case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;\n      case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;\n      case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;\n      case 0xb:\n        if (smtpcode != 0xfa) goto _L400;\n      }" { (case_statement "case 1:\n        if (99 < smtpcode - 200U) goto _L286;\nLAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;\n        (conn->proto).httpc.binlen = 0;\n        (conn->proto).smtpc.tls_supported = false;\n        (conn->proto).smtpc.auth_supported = false;\n        local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);\n        if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;" case number_literal : (if_statement "if (99 < smtpcode - 200U) goto _L286;" if (parenthesized_expression "(99 < smtpcode - 200U)" ( (binary_expression "99 < smtpcode - 200U" number_literal < (binary_expression "smtpcode - 200U" identifier - number_literal)) )) (goto_statement "goto _L286;" goto statement_identifier ;)) (labeled_statement "LAB_0005cfaf:\n        (conn->proto).sshc.slash_pos = (char *)0x0;" statement_identifier : (expression_statement "(conn->proto).sshc.slash_pos = (char *)0x0;" (assignment_expression "(conn->proto).sshc.slash_pos = (char *)0x0" (field_expression "(conn->proto).sshc.slash_pos" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "(conn->proto).httpc.binlen = 0;" (assignment_expression "(conn->proto).httpc.binlen = 0" (field_expression "(conn->proto).httpc.binlen" (field_expression "(conn->proto).httpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(conn->proto).smtpc.tls_supported = false;" (assignment_expression "(conn->proto).smtpc.tls_supported = false" (field_expression "(conn->proto).smtpc.tls_supported" (field_expression "(conn->proto).smtpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = false) ;) (expression_statement "(conn->proto).smtpc.auth_supported = false;" (assignment_expression "(conn->proto).smtpc.auth_supported = false" (field_expression "(conn->proto).smtpc.auth_supported" (field_expression "(conn->proto).smtpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = false) ;) (expression_statement "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);" (assignment_expression "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth)" identifier = (call_expression "Curl_pp_sendf(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth)" identifier (argument_list "(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (string_literal ""EHLO %s"" " string_content ") , (field_expression "(conn->proto).ftpc.dirdepth" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) )))) ;) (if_statement "if (local_54 == CURLE_OK) {\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }" if (parenthesized_expression "(local_54 == CURLE_OK)" ( (binary_expression "local_54 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n          (conn->proto).sshc.readdir_totalLen = 2;\n          goto LAB_0005cd48;\n        }" { (expression_statement "(conn->proto).sshc.readdir_totalLen = 2;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 2" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0005cd48;" goto statement_identifier ;) })) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (case_statement "case 2:\n_L282:\n        pCVar11 = conn->data;\n        if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }\n        pcVar14 = (pCVar11->state).buffer;\n        sVar12 = strlen(pcVar14);\n        uVar15 = sVar12 - 4;\n        if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }\n        cVar8 = (pCVar11->set).use_ssl;\n        if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }\nLAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }\n        break;" case number_literal : (labeled_statement "_L282:\n        pCVar11 = conn->data;" statement_identifier : (expression_statement "pCVar11 = conn->data;" (assignment_expression "pCVar11 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;)) (if_statement "if ((99 < smtpcode - 200U) && (smtpcode != 1)) {\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }" if (parenthesized_expression "((99 < smtpcode - 200U) && (smtpcode != 1))" ( (binary_expression "(99 < smtpcode - 200U) && (smtpcode != 1)" (parenthesized_expression "(99 < smtpcode - 200U)" ( (binary_expression "99 < smtpcode - 200U" number_literal < (binary_expression "smtpcode - 200U" identifier - number_literal)) )) && (parenthesized_expression "(smtpcode != 1)" ( (binary_expression "smtpcode != 1" identifier != number_literal) ))) )) (compound_statement "{\n          if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }\n          goto LAB_0005cdac;\n        }" { (if_statement "if (((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)) {\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }\n          else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }" if (parenthesized_expression "(((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false))" ( (binary_expression "((pCVar11->set).use_ssl < CURLUSESSL_CONTROL) || (conn->ssl[0].use != false)" (parenthesized_expression "((pCVar11->set).use_ssl < CURLUSESSL_CONTROL)" ( (binary_expression "(pCVar11->set).use_ssl < CURLUSESSL_CONTROL" (field_expression "(pCVar11->set).use_ssl" (parenthesized_expression "(pCVar11->set)" ( (field_expression "pCVar11->set" identifier -> field_identifier) )) . field_identifier) < identifier) )) || (parenthesized_expression "(conn->ssl[0].use != false)" ( (binary_expression "conn->ssl[0].use != false" (field_expression "conn->ssl[0].use" (subscript_expression "conn->ssl[0]" (field_expression "conn->ssl" identifier -> field_identifier) [ number_literal ]) . field_identifier) != false) ))) )) (compound_statement "{\n            (conn->proto).httpc.binlen = 0;\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }\n          }" { (expression_statement "(conn->proto).httpc.binlen = 0;" (assignment_expression "(conn->proto).httpc.binlen = 0" (field_expression "(conn->proto).httpc.binlen" (field_expression "(conn->proto).httpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);" (assignment_expression "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth)" identifier = (call_expression "Curl_pp_sendf(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth)" identifier (argument_list "(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (string_literal ""HELO %s"" " string_content ") , (field_expression "(conn->proto).ftpc.dirdepth" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) )))) ;) (if_statement "if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }" if (parenthesized_expression "(local_54 == CURLE_OK)" ( (binary_expression "local_54 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n              (conn->proto).sshc.readdir_totalLen = 3;\n              goto LAB_0005cd48;\n            }" { (expression_statement "(conn->proto).sshc.readdir_totalLen = 3;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 3" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0005cd48;" goto statement_identifier ;) })) }) (else_clause "else {\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }" else (compound_statement "{\n            Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);\n            local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          }" { (expression_statement "Curl_failf(pCVar11,"Remote access denied: %d",smtpcode);" (call_expression "Curl_failf(pCVar11,"Remote access denied: %d",smtpcode)" identifier (argument_list "(pCVar11,"Remote access denied: %d",smtpcode)" ( identifier , (string_literal ""Remote access denied: %d"" " string_content ") , identifier ))) ;) (expression_statement "local_54 = CURLE_REMOTE_ACCESS_DENIED;" (assignment_expression "local_54 = CURLE_REMOTE_ACCESS_DENIED" identifier = identifier) ;) }))) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) (expression_statement "pcVar14 = (pCVar11->state).buffer;" (assignment_expression "pcVar14 = (pCVar11->state).buffer" identifier = (field_expression "(pCVar11->state).buffer" (parenthesized_expression "(pCVar11->state)" ( (field_expression "pCVar11->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar12 = strlen(pcVar14);" (assignment_expression "sVar12 = strlen(pcVar14)" identifier = (call_expression "strlen(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (expression_statement "uVar15 = sVar12 - 4;" (assignment_expression "uVar15 = sVar12 - 4" identifier = (binary_expression "sVar12 - 4" identifier - number_literal)) ;) (if_statement "if (uVar15 < 8) {\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }\n        else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }" if (parenthesized_expression "(uVar15 < 8)" ( (binary_expression "uVar15 < 8" identifier < number_literal) )) (compound_statement "{\n          if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }\nLAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;\n        }" { (if_statement "if (3 < uVar15) {\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }" if (parenthesized_expression "(3 < uVar15)" ( (binary_expression "3 < uVar15" number_literal < identifier) )) (compound_statement "{\n            if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;\n          }" { (if_statement "if (*(int *)(pcVar14 + 4) == 0x455a4953) {\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }\n            else if (uVar15 != 4) goto LAB_0005d46b;" if (parenthesized_expression "(*(int *)(pcVar14 + 4) == 0x455a4953)" ( (binary_expression "*(int *)(pcVar14 + 4) == 0x455a4953" (pointer_expression "*(int *)(pcVar14 + 4)" * (cast_expression "(int *)(pcVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 4)" ( (binary_expression "pcVar14 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;\n            }" { (labeled_statement "LAB_0005d2b2:\n              (conn->proto).smtpc.size_supported = true;" statement_identifier : (expression_statement "(conn->proto).smtpc.size_supported = true;" (assignment_expression "(conn->proto).smtpc.size_supported = true" (field_expression "(conn->proto).smtpc.size_supported" (field_expression "(conn->proto).smtpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = true) ;)) }) (else_clause "else if (uVar15 != 4) goto LAB_0005d46b;" else (if_statement "if (uVar15 != 4) goto LAB_0005d46b;" if (parenthesized_expression "(uVar15 != 4)" ( (binary_expression "uVar15 != 4" identifier != number_literal) )) (goto_statement "goto LAB_0005d46b;" goto statement_identifier ;)))) })) (labeled_statement "LAB_0005d18e:\n          if (iVar7 == 1) goto LAB_0005cd48;" statement_identifier : (if_statement "if (iVar7 == 1) goto LAB_0005cd48;" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0005cd48;" goto statement_identifier ;))) }) (else_clause "else {\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }" else (compound_statement "{\n          if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }\n          if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;\nLAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;\n          (conn->proto).smtpc.auth_supported = true;\n          sVar13 = sVar12 - 9;\n          if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }\n          if (iVar7 == 1) goto LAB_0005d147;\n        }" { (if_statement "if ((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)) {\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }" if (parenthesized_expression "((*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454))" ( (binary_expression "(*(int *)(pcVar14 + 4) == 0x52415453) && (*(int *)(pcVar14 + 8) == 0x534c5454)" (parenthesized_expression "(*(int *)(pcVar14 + 4) == 0x52415453)" ( (binary_expression "*(int *)(pcVar14 + 4) == 0x52415453" (pointer_expression "*(int *)(pcVar14 + 4)" * (cast_expression "(int *)(pcVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 4)" ( (binary_expression "pcVar14 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(pcVar14 + 8) == 0x534c5454)" ( (binary_expression "*(int *)(pcVar14 + 8) == 0x534c5454" (pointer_expression "*(int *)(pcVar14 + 8)" * (cast_expression "(int *)(pcVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 8)" ( (binary_expression "pcVar14 + 8" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n            (conn->proto).smtpc.tls_supported = true;\n            goto LAB_0005d18e;\n          }" { (expression_statement "(conn->proto).smtpc.tls_supported = true;" (assignment_expression "(conn->proto).smtpc.tls_supported = true" (field_expression "(conn->proto).smtpc.tls_supported" (field_expression "(conn->proto).smtpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = true) ;) (goto_statement "goto LAB_0005d18e;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pcVar14 + 4) == 0x455a4953) goto LAB_0005d2b2;" if (parenthesized_expression "(*(int *)(pcVar14 + 4) == 0x455a4953)" ( (binary_expression "*(int *)(pcVar14 + 4) == 0x455a4953" (pointer_expression "*(int *)(pcVar14 + 4)" * (cast_expression "(int *)(pcVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 4)" ( (binary_expression "pcVar14 + 4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0005d2b2;" goto statement_identifier ;)) (labeled_statement "LAB_0005d46b:\n          if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;" statement_identifier : (if_statement "if ((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')) goto LAB_0005d18e;" if (parenthesized_expression "((*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' '))" ( (binary_expression "(*(int *)(pcVar14 + 4) != 0x48545541) || (pcVar14[8] != ' ')" (parenthesized_expression "(*(int *)(pcVar14 + 4) != 0x48545541)" ( (binary_expression "*(int *)(pcVar14 + 4) != 0x48545541" (pointer_expression "*(int *)(pcVar14 + 4)" * (cast_expression "(int *)(pcVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 4)" ( (binary_expression "pcVar14 + 4" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(pcVar14[8] != ' ')" ( (binary_expression "pcVar14[8] != ' '" (subscript_expression "pcVar14[8]" identifier [ number_literal ]) != (char_literal "' '" ' character ')) ))) )) (goto_statement "goto LAB_0005d18e;" goto statement_identifier ;))) (expression_statement "(conn->proto).smtpc.auth_supported = true;" (assignment_expression "(conn->proto).smtpc.auth_supported = true" (field_expression "(conn->proto).smtpc.auth_supported" (field_expression "(conn->proto).smtpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = true) ;) (expression_statement "sVar13 = sVar12 - 9;" (assignment_expression "sVar13 = sVar12 - 9" identifier = (binary_expression "sVar12 - 9" identifier - number_literal)) ;) (if_statement "if (sVar13 != SASL_IDLE) {\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }" if (parenthesized_expression "(sVar13 != SASL_IDLE)" ( (binary_expression "sVar13 != SASL_IDLE" identifier != identifier) )) (compound_statement "{\n            ptr = (byte *)(pcVar14 + 9);\n            do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);\n          }" { (expression_statement "ptr = (byte *)(pcVar14 + 9);" (assignment_expression "ptr = (byte *)(pcVar14 + 9)" identifier = (cast_expression "(byte *)(pcVar14 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 9)" ( (binary_expression "pcVar14 + 9" identifier + number_literal) )))) ;) (do_statement "do {\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            } while (sVar13 != SASL_IDLE);" do (compound_statement "{\n              if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }\n              ptr = pbVar16;\n            }" { (if_statement "if (((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)) {\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }\n              else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }" if (parenthesized_expression "(((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0))" ( (binary_expression "((byte)(*ptr - 9) < 0x18) && ((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)" (parenthesized_expression "((byte)(*ptr - 9) < 0x18)" ( (binary_expression "(byte)(*ptr - 9) < 0x18" (call_expression "(byte)(*ptr - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*ptr - 9)" ( (binary_expression "*ptr - 9" (pointer_expression "*ptr" * identifier) - number_literal) ))) < number_literal) )) && (parenthesized_expression "((0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0)" ( (binary_expression "(0x800013U >> (*ptr - 9 & 0x1f) & 1) != 0" (parenthesized_expression "(0x800013U >> (*ptr - 9 & 0x1f) & 1)" ( (binary_expression "0x800013U >> (*ptr - 9 & 0x1f) & 1" (binary_expression "0x800013U >> (*ptr - 9 & 0x1f)" number_literal >> (parenthesized_expression "(*ptr - 9 & 0x1f)" ( (binary_expression "*ptr - 9 & 0x1f" (binary_expression "*ptr - 9" (pointer_expression "*ptr" * identifier) - number_literal) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                pbVar16 = ptr + 1;\n                sVar13 = sVar13 - SASL_INPROGRESS;\n              }" { (expression_statement "pbVar16 = ptr + 1;" (assignment_expression "pbVar16 = ptr + 1" identifier = (binary_expression "ptr + 1" identifier + number_literal)) ;) (expression_statement "sVar13 = sVar13 - SASL_INPROGRESS;" (assignment_expression "sVar13 = sVar13 - SASL_INPROGRESS" identifier = (binary_expression "sVar13 - SASL_INPROGRESS" identifier - identifier)) ;) }) (else_clause "else {\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }" else (compound_statement "{\n                maxlen = SASL_IDLE;\n                do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));\n                sVar13 = sVar13 - maxlen;\nLAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);\n                if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }\n              }" { (expression_statement "maxlen = SASL_IDLE;" (assignment_expression "maxlen = SASL_IDLE" identifier = identifier) ;) (do_statement "do {\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                } while ((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0));" do (compound_statement "{\n                  maxlen = maxlen + SASL_INPROGRESS;\n                  pbVar16 = ptr + maxlen;\n                  if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }\n                }" { (expression_statement "maxlen = maxlen + SASL_INPROGRESS;" (assignment_expression "maxlen = maxlen + SASL_INPROGRESS" identifier = (binary_expression "maxlen + SASL_INPROGRESS" identifier + identifier)) ;) (expression_statement "pbVar16 = ptr + maxlen;" (assignment_expression "pbVar16 = ptr + maxlen" identifier = (binary_expression "ptr + maxlen" identifier + identifier)) ;) (if_statement "if (maxlen == sVar13) {\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }" if (parenthesized_expression "(maxlen == sVar13)" ( (binary_expression "maxlen == sVar13" identifier == identifier) )) (compound_statement "{\n                    sVar13 = SASL_IDLE;\n                    goto LAB_0005d5b9;\n                  }" { (expression_statement "sVar13 = SASL_IDLE;" (assignment_expression "sVar13 = SASL_IDLE" identifier = identifier) ;) (goto_statement "goto LAB_0005d5b9;" goto statement_identifier ;) })) }) while (parenthesized_expression "((0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0))" ( (binary_expression "(0x17 < (byte)(ptr[maxlen] - 9)) ||\n                        ((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0)" (parenthesized_expression "(0x17 < (byte)(ptr[maxlen] - 9))" ( (binary_expression "0x17 < (byte)(ptr[maxlen] - 9)" number_literal < (call_expression "(byte)(ptr[maxlen] - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(ptr[maxlen] - 9)" ( (binary_expression "ptr[maxlen] - 9" (subscript_expression "ptr[maxlen]" identifier [ identifier ]) - number_literal) )))) )) || (parenthesized_expression "((0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0)" ( (binary_expression "(0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1) == 0" (parenthesized_expression "(0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1)" ( (binary_expression "0x800013U >> (ptr[maxlen] - 9 & 0x1f) & 1" (binary_expression "0x800013U >> (ptr[maxlen] - 9 & 0x1f)" number_literal >> (parenthesized_expression "(ptr[maxlen] - 9 & 0x1f)" ( (binary_expression "ptr[maxlen] - 9 & 0x1f" (binary_expression "ptr[maxlen] - 9" (subscript_expression "ptr[maxlen]" identifier [ identifier ]) - number_literal) & number_literal) ))) & number_literal) )) == number_literal) ))) )) ;) (expression_statement "sVar13 = sVar13 - maxlen;" (assignment_expression "sVar13 = sVar13 - maxlen" identifier = (binary_expression "sVar13 - maxlen" identifier - identifier)) ;) (labeled_statement "LAB_0005d5b9:\n                uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);" statement_identifier : (expression_statement "uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress);" (assignment_expression "uVar15 = Curl_sasl_decode_mech((char *)ptr,maxlen,&progress)" identifier = (call_expression "Curl_sasl_decode_mech((char *)ptr,maxlen,&progress)" identifier (argument_list "((char *)ptr,maxlen,&progress)" ( (cast_expression "(char *)ptr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&progress" & identifier) )))) ;)) (if_statement "if ((uVar15 != 0) && (progress == maxlen)) {\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }" if (parenthesized_expression "((uVar15 != 0) && (progress == maxlen))" ( (binary_expression "(uVar15 != 0) && (progress == maxlen)" (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) && (parenthesized_expression "(progress == maxlen)" ( (binary_expression "progress == maxlen" identifier == identifier) ))) )) (compound_statement "{\n                  ppcVar1 = &(conn->proto).sshc.slash_pos;\n                  *ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);\n                }" { (expression_statement "ppcVar1 = &(conn->proto).sshc.slash_pos;" (assignment_expression "ppcVar1 = &(conn->proto).sshc.slash_pos" identifier = (pointer_expression "&(conn->proto).sshc.slash_pos" & (field_expression "(conn->proto).sshc.slash_pos" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "*ppcVar1 = (char *)((uint)*ppcVar1 | uVar15);" (assignment_expression "*ppcVar1 = (char *)((uint)*ppcVar1 | uVar15)" (pointer_expression "*ppcVar1" * identifier) = (cast_expression "(char *)((uint)*ppcVar1 | uVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*ppcVar1 | uVar15)" ( (binary_expression "(uint)*ppcVar1 | uVar15" (binary_expression "(uint)*ppcVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier) | identifier) )))) ;) })) }))) (expression_statement "ptr = pbVar16;" (assignment_expression "ptr = pbVar16" identifier = identifier) ;) }) while (parenthesized_expression "(sVar13 != SASL_IDLE)" ( (binary_expression "sVar13 != SASL_IDLE" identifier != identifier) )) ;) })) (if_statement "if (iVar7 == 1) goto LAB_0005d147;" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0005d147;" goto statement_identifier ;)) }))) (expression_statement "cVar8 = (pCVar11->set).use_ssl;" (assignment_expression "cVar8 = (pCVar11->set).use_ssl" identifier = (field_expression "(pCVar11->set).use_ssl" (parenthesized_expression "(pCVar11->set)" ( (field_expression "pCVar11->set" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)) {\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }" if (parenthesized_expression "((cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false))" ( (binary_expression "(cVar8 != CURLUSESSL_NONE) && (conn->ssl[0].use == false)" (parenthesized_expression "(cVar8 != CURLUSESSL_NONE)" ( (binary_expression "cVar8 != CURLUSESSL_NONE" identifier != identifier) )) && (parenthesized_expression "(conn->ssl[0].use == false)" ( (binary_expression "conn->ssl[0].use == false" (field_expression "conn->ssl[0].use" (subscript_expression "conn->ssl[0]" (field_expression "conn->ssl" identifier -> field_identifier) [ number_literal ]) . field_identifier) == false) ))) )) (compound_statement "{\n          if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }\n          if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }\n        }" { (if_statement "if ((conn->proto).smtpc.tls_supported != false) {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }" if (parenthesized_expression "((conn->proto).smtpc.tls_supported != false)" ( (binary_expression "(conn->proto).smtpc.tls_supported != false" (field_expression "(conn->proto).smtpc.tls_supported" (field_expression "(conn->proto).smtpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) != false) )) (compound_statement "{\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");\n            if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }\n            goto LAB_0005cdac;\n          }" { (expression_statement "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS");" (assignment_expression "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS")" identifier = (call_expression "Curl_pp_sendf(&(pp->ftpc).pp,"%s","STARTTLS")" identifier (argument_list "(&(pp->ftpc).pp,"%s","STARTTLS")" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (string_literal ""%s"" " string_content ") , (string_literal ""STARTTLS"" " string_content ") )))) ;) (if_statement "if (local_54 == CURLE_OK) {\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }" if (parenthesized_expression "(local_54 == CURLE_OK)" ( (binary_expression "local_54 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n              (conn->proto).sshc.readdir_totalLen = 4;\n              goto LAB_0005cd48;\n            }" { (expression_statement "(conn->proto).sshc.readdir_totalLen = 4;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 4" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0005cd48;" goto statement_identifier ;) })) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) (if_statement "if (cVar8 != CURLUSESSL_TRY) {\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }" if (parenthesized_expression "(cVar8 != CURLUSESSL_TRY)" ( (binary_expression "cVar8 != CURLUSESSL_TRY" identifier != identifier) )) (compound_statement "{\n            Curl_failf(pCVar11,"STARTTLS not supported.");\n            local_54 = CURLE_USE_SSL_FAILED;\n            goto LAB_0005cdac;\n          }" { (expression_statement "Curl_failf(pCVar11,"STARTTLS not supported.");" (call_expression "Curl_failf(pCVar11,"STARTTLS not supported.")" identifier (argument_list "(pCVar11,"STARTTLS not supported.")" ( identifier , (string_literal ""STARTTLS not supported."" " string_content ") ))) ;) (expression_statement "local_54 = CURLE_USE_SSL_FAILED;" (assignment_expression "local_54 = CURLE_USE_SSL_FAILED" identifier = identifier) ;) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0005d1e8:\n        if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }" statement_identifier : (if_statement "if ((conn->proto).smtpc.auth_supported != false) {\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }" if (parenthesized_expression "((conn->proto).smtpc.auth_supported != false)" ( (binary_expression "(conn->proto).smtpc.auth_supported != false" (field_expression "(conn->proto).smtpc.auth_supported" (field_expression "(conn->proto).smtpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) != false) )) (compound_statement "{\n          sasl = &(conn->proto).imapc.sasl.state;\n          _Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);\n          if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }\n        }" { (expression_statement "sasl = &(conn->proto).imapc.sasl.state;" (assignment_expression "sasl = &(conn->proto).imapc.sasl.state" identifier = (pointer_expression "&(conn->proto).imapc.sasl.state" & (field_expression "(conn->proto).imapc.sasl.state" (field_expression "(conn->proto).imapc.sasl" (field_expression "(conn->proto).imapc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "_Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn);" (assignment_expression "_Var9 = Curl_sasl_can_authenticate((SASL *)sasl,conn)" identifier = (call_expression "Curl_sasl_can_authenticate((SASL *)sasl,conn)" identifier (argument_list "((SASL *)sasl,conn)" ( (cast_expression "(SASL *)sasl" ( (type_descriptor "SASL *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (_Var9) {\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }" if (parenthesized_expression "(_Var9)" ( identifier )) (compound_statement "{\n            local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);\n            if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }\n            goto LAB_0005cdac;\n          }" { (expression_statement "local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress);" (assignment_expression "local_54 = Curl_sasl_start((SASL *)sasl,conn,false,&progress)" identifier = (call_expression "Curl_sasl_start((SASL *)sasl,conn,false,&progress)" identifier (argument_list "((SASL *)sasl,conn,false,&progress)" ( (cast_expression "(SASL *)sasl" ( (type_descriptor "SASL *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , false , (pointer_expression "&progress" & identifier) )))) ;) (if_statement "if (local_54 == CURLE_OK) {\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }" if (parenthesized_expression "(local_54 == CURLE_OK)" ( (binary_expression "local_54 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n              if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }\n              Curl_infof(conn->data,"No known authentication mechanisms supported!\n");\n              local_54 = CURLE_LOGIN_DENIED;\n            }" { (if_statement "if (progress == SASL_INPROGRESS) {\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }" if (parenthesized_expression "(progress == SASL_INPROGRESS)" ( (binary_expression "progress == SASL_INPROGRESS" identifier == identifier) )) (compound_statement "{\n                (conn->proto).sshc.readdir_totalLen = 6;\n                goto LAB_0005cd48;\n              }" { (expression_statement "(conn->proto).sshc.readdir_totalLen = 6;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 6" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0005cd48;" goto statement_identifier ;) })) (expression_statement "Curl_infof(conn->data,"No known authentication mechanisms supported!\n");" (call_expression "Curl_infof(conn->data,"No known authentication mechanisms supported!\n")" identifier (argument_list "(conn->data,"No known authentication mechanisms supported!\n")" ( (field_expression "conn->data" identifier -> field_identifier) , (string_literal ""No known authentication mechanisms supported!\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_54 = CURLE_LOGIN_DENIED;" (assignment_expression "local_54 = CURLE_LOGIN_DENIED" identifier = identifier) ;) })) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) }))) (break_statement "break;" break ;)) (case_statement "case 3:\n_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }\n        break;" case number_literal : (labeled_statement "_L281:\n        if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }" statement_identifier : (if_statement "if (99 < smtpcode - 200U) {\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }" if (parenthesized_expression "(99 < smtpcode - 200U)" ( (binary_expression "99 < smtpcode - 200U" number_literal < (binary_expression "smtpcode - 200U" identifier - number_literal)) )) (compound_statement "{\n          Curl_failf(conn->data,"Remote access denied: %d",smtpcode);\n          local_54 = CURLE_REMOTE_ACCESS_DENIED;\n          goto LAB_0005cdac;\n        }" { (expression_statement "Curl_failf(conn->data,"Remote access denied: %d",smtpcode);" (call_expression "Curl_failf(conn->data,"Remote access denied: %d",smtpcode)" identifier (argument_list "(conn->data,"Remote access denied: %d",smtpcode)" ( (field_expression "conn->data" identifier -> field_identifier) , (string_literal ""Remote access denied: %d"" " string_content ") , identifier ))) ;) (expression_statement "local_54 = CURLE_REMOTE_ACCESS_DENIED;" (assignment_expression "local_54 = CURLE_REMOTE_ACCESS_DENIED" identifier = identifier) ;) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) }))) (break_statement "break;" break ;)) (case_statement "case 4:\n        if (smtpcode != 0xdc) goto _L399;\n        local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);\n        if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }\n        goto LAB_0005cdac;" case number_literal : (if_statement "if (smtpcode != 0xdc) goto _L399;" if (parenthesized_expression "(smtpcode != 0xdc)" ( (binary_expression "smtpcode != 0xdc" identifier != number_literal) )) (goto_statement "goto _L399;" goto statement_identifier ;)) (expression_statement "local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone);" (assignment_expression "local_54 = Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone)" identifier = (call_expression "Curl_ssl_connect_nonblocking(conn,0,&(conn->proto).imapc.ssldone)" identifier (argument_list "(conn,0,&(conn->proto).imapc.ssldone)" ( identifier , number_literal , (pointer_expression "&(conn->proto).imapc.ssldone" & (field_expression "(conn->proto).imapc.ssldone" (field_expression "(conn->proto).imapc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier)) )))) ;) (if_statement "if (local_54 == CURLE_OK) {\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }" if (parenthesized_expression "(local_54 == CURLE_OK)" ( (binary_expression "local_54 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n          if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }\n          if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }\n          goto LAB_0005cd48;\n        }" { (if_statement "if ((conn->proto).ftpc.entrypath != (char *)0x5) {\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }" if (parenthesized_expression "((conn->proto).ftpc.entrypath != (char *)0x5)" ( (binary_expression "(conn->proto).ftpc.entrypath != (char *)0x5" (field_expression "(conn->proto).ftpc.entrypath" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (conn->proto).sshc.readdir_totalLen = 5;\n          }" { (expression_statement "(conn->proto).sshc.readdir_totalLen = 5;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 5" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) })) (if_statement "if ((conn->proto).httpc.binsettings[0x38] != '\0') {\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }" if (parenthesized_expression "((conn->proto).httpc.binsettings[0x38] != '\0')" ( (binary_expression "(conn->proto).httpc.binsettings[0x38] != '\0'" (subscript_expression "(conn->proto).httpc.binsettings[0x38]" (field_expression "(conn->proto).httpc.binsettings" (field_expression "(conn->proto).httpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            conn->tls_upgraded = true;\n            conn->handler = &Curl_handler_smtps;\n            goto LAB_0005cfaf;\n          }" { (expression_statement "conn->tls_upgraded = true;" (assignment_expression "conn->tls_upgraded = true" (field_expression "conn->tls_upgraded" identifier -> field_identifier) = true) ;) (expression_statement "conn->handler = &Curl_handler_smtps;" (assignment_expression "conn->handler = &Curl_handler_smtps" (field_expression "conn->handler" identifier -> field_identifier) = (pointer_expression "&Curl_handler_smtps" & identifier)) ;) (goto_statement "goto LAB_0005cfaf;" goto statement_identifier ;) })) (goto_statement "goto LAB_0005cd48;" goto statement_identifier ;) })) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (case_statement "case 6:\n_L279:\n        pCVar11 = conn->data;\n        local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);\n        if (local_54 != CURLE_OK) goto LAB_0005cdac;\n        if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }\n        if (progress != SASL_DONE) goto LAB_0005d147;\n        break;" case number_literal : (labeled_statement "_L279:\n        pCVar11 = conn->data;" statement_identifier : (expression_statement "pCVar11 = conn->data;" (assignment_expression "pCVar11 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;)) (expression_statement "local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress);" (assignment_expression "local_54 = Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress)" identifier = (call_expression "Curl_sasl_continue((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress)" identifier (argument_list "((SASL *)&(conn->proto).imapc.sasl.state,conn,smtpcode,\n                                      &progress)" ( (cast_expression "(SASL *)&(conn->proto).imapc.sasl.state" ( (type_descriptor "SASL *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(conn->proto).imapc.sasl.state" & (field_expression "(conn->proto).imapc.sasl.state" (field_expression "(conn->proto).imapc.sasl" (field_expression "(conn->proto).imapc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) , identifier , identifier , (pointer_expression "&progress" & identifier) )))) ;) (if_statement "if (local_54 != CURLE_OK) goto LAB_0005cdac;" if (parenthesized_expression "(local_54 != CURLE_OK)" ( (binary_expression "local_54 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (if_statement "if (progress == SASL_IDLE) {\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }" if (parenthesized_expression "(progress == SASL_IDLE)" ( (binary_expression "progress == SASL_IDLE" identifier == identifier) )) (compound_statement "{\n          Curl_failf(pCVar11,"Authentication cancelled");\n          local_54 = CURLE_LOGIN_DENIED;\n          goto LAB_0005cdac;\n        }" { (expression_statement "Curl_failf(pCVar11,"Authentication cancelled");" (call_expression "Curl_failf(pCVar11,"Authentication cancelled")" identifier (argument_list "(pCVar11,"Authentication cancelled")" ( identifier , (string_literal ""Authentication cancelled"" " string_content ") ))) ;) (expression_statement "local_54 = CURLE_LOGIN_DENIED;" (assignment_expression "local_54 = CURLE_LOGIN_DENIED" identifier = identifier) ;) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) (if_statement "if (progress != SASL_DONE) goto LAB_0005d147;" if (parenthesized_expression "(progress != SASL_DONE)" ( (binary_expression "progress != SASL_DONE" identifier != identifier) )) (goto_statement "goto LAB_0005d147;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 7:\n_L278:\n        pCVar11 = conn->data;\n        pvVar5 = (pCVar11->req).protop;\n        iVar6 = *(int *)((int)pvVar5 + 8);\n        if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }\n        if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }\nLAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);\n        local_54 = CVar10;\n        if (!_Var9) goto LAB_0005cdac;\n        goto LAB_0005cc28;" case number_literal : (labeled_statement "_L278:\n        pCVar11 = conn->data;" statement_identifier : (expression_statement "pCVar11 = conn->data;" (assignment_expression "pCVar11 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;)) (expression_statement "pvVar5 = (pCVar11->req).protop;" (assignment_expression "pvVar5 = (pCVar11->req).protop" identifier = (field_expression "(pCVar11->req).protop" (parenthesized_expression "(pCVar11->req)" ( (field_expression "pCVar11->req" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar6 = *(int *)((int)pvVar5 + 8);" (assignment_expression "iVar6 = *(int *)((int)pvVar5 + 8)" identifier = (pointer_expression "*(int *)((int)pvVar5 + 8)" * (cast_expression "(int *)((int)pvVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar5 + 8)" ( (binary_expression "(int)pvVar5 + 8" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }\n        else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;\n        }" { (if_statement "if ((smtpcode != 1) && (99 < smtpcode - 200U)) goto LAB_0005ce08;" if (parenthesized_expression "((smtpcode != 1) && (99 < smtpcode - 200U))" ( (binary_expression "(smtpcode != 1) && (99 < smtpcode - 200U)" (parenthesized_expression "(smtpcode != 1)" ( (binary_expression "smtpcode != 1" identifier != number_literal) )) && (parenthesized_expression "(99 < smtpcode - 200U)" ( (binary_expression "99 < smtpcode - 200U" number_literal < (binary_expression "smtpcode - 200U" identifier - number_literal)) ))) )) (goto_statement "goto LAB_0005ce08;" goto statement_identifier ;)) }) (else_clause "else if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }" else (if_statement "if ((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))) {\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }" if (parenthesized_expression "((99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1))))" ( (binary_expression "(99 < smtpcode - 200U) && ((smtpcode != 0x229 && (smtpcode != 1)))" (parenthesized_expression "(99 < smtpcode - 200U)" ( (binary_expression "99 < smtpcode - 200U" number_literal < (binary_expression "smtpcode - 200U" identifier - number_literal)) )) && (parenthesized_expression "((smtpcode != 0x229 && (smtpcode != 1)))" ( (parenthesized_expression "(smtpcode != 0x229 && (smtpcode != 1))" ( (binary_expression "smtpcode != 0x229 && (smtpcode != 1)" (binary_expression "smtpcode != 0x229" identifier != number_literal) && (parenthesized_expression "(smtpcode != 1)" ( (binary_expression "smtpcode != 1" identifier != number_literal) ))) )) ))) )) (compound_statement "{\nLAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);\n          local_54 = CURLE_RECV_ERROR;\n          goto LAB_0005cdac;\n        }" { (labeled_statement "LAB_0005ce08:\n          Curl_failf(pCVar11,"Command failed: %d",smtpcode);" statement_identifier : (expression_statement "Curl_failf(pCVar11,"Command failed: %d",smtpcode);" (call_expression "Curl_failf(pCVar11,"Command failed: %d",smtpcode)" identifier (argument_list "(pCVar11,"Command failed: %d",smtpcode)" ( identifier , (string_literal ""Command failed: %d"" " string_content ") , identifier ))) ;)) (expression_statement "local_54 = CURLE_RECV_ERROR;" (assignment_expression "local_54 = CURLE_RECV_ERROR" identifier = identifier) ;) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })))) (if_statement "if ((pCVar11->set).opt_no_body == false) {\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }\n        else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }" if (parenthesized_expression "((pCVar11->set).opt_no_body == false)" ( (binary_expression "(pCVar11->set).opt_no_body == false" (field_expression "(pCVar11->set).opt_no_body" (parenthesized_expression "(pCVar11->set)" ( (field_expression "pCVar11->set" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n          pcVar14 = (pCVar11->state).buffer;\n          sVar12 = strlen(pcVar14);\n          pcVar14[sVar12] = '\n';\n          local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);\n          pcVar14[sVar12] = '\0';\n          if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\nLAB_0005d147:\n          local_54 = CVar10;\n          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;\n        }" { (expression_statement "pcVar14 = (pCVar11->state).buffer;" (assignment_expression "pcVar14 = (pCVar11->state).buffer" identifier = (field_expression "(pCVar11->state).buffer" (parenthesized_expression "(pCVar11->state)" ( (field_expression "pCVar11->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar12 = strlen(pcVar14);" (assignment_expression "sVar12 = strlen(pcVar14)" identifier = (call_expression "strlen(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (expression_statement "pcVar14[sVar12] = '\n';" (assignment_expression "pcVar14[sVar12] = '\n'" (subscript_expression "pcVar14[sVar12]" identifier [ identifier ]) = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1);" (assignment_expression "local_54 = Curl_client_write(conn,1,pcVar14,sVar12 + 1)" identifier = (call_expression "Curl_client_write(conn,1,pcVar14,sVar12 + 1)" identifier (argument_list "(conn,1,pcVar14,sVar12 + 1)" ( identifier , number_literal , identifier , (binary_expression "sVar12 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar14[sVar12] = '\0';" (assignment_expression "pcVar14[sVar12] = '\0'" (subscript_expression "pcVar14[sVar12]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (iVar7 != 1) {\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }" if (parenthesized_expression "(iVar7 != 1)" ( (binary_expression "iVar7 != 1" identifier != number_literal) )) (compound_statement "{\n            if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n          }" { (if_statement "if ((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)) {\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }" if (parenthesized_expression "((*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0))" ( (binary_expression "(*(int *)((int)pvVar5 + 8) != 0) &&\n               (iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)" (parenthesized_expression "(*(int *)((int)pvVar5 + 8) != 0)" ( (binary_expression "*(int *)((int)pvVar5 + 8) != 0" (pointer_expression "*(int *)((int)pvVar5 + 8)" * (cast_expression "(int *)((int)pvVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar5 + 8)" ( (binary_expression "(int)pvVar5 + 8" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0)" ( (comma_expression "iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0" (assignment_expression "iVar7 = *(int *)(*(int *)((int)pvVar5 + 8) + 4)" identifier = (pointer_expression "*(int *)(*(int *)((int)pvVar5 + 8) + 4)" * (cast_expression "(int *)(*(int *)((int)pvVar5 + 8) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pvVar5 + 8) + 4)" ( (binary_expression "*(int *)((int)pvVar5 + 8) + 4" (pointer_expression "*(int *)((int)pvVar5 + 8)" * (cast_expression "(int *)((int)pvVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar5 + 8)" ( (binary_expression "(int)pvVar5 + 8" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) , (comma_expression "*(int *)((int)pvVar5 + 8) = iVar7,\n               iVar7 != 0" (assignment_expression "*(int *)((int)pvVar5 + 8) = iVar7" (pointer_expression "*(int *)((int)pvVar5 + 8)" * (cast_expression "(int *)((int)pvVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar5 + 8)" ( (binary_expression "(int)pvVar5 + 8" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) , (binary_expression "iVar7 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n              pvVar5 = (conn->data->req).protop;\n              puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n              pcVar14 = *(char **)((int)pvVar5 + 4);\n              if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;\n              if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }\n              local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);\n              goto LAB_0005d0bf;\n            }" { (expression_statement "pvVar5 = (conn->data->req).protop;" (assignment_expression "pvVar5 = (conn->data->req).protop" identifier = (field_expression "(conn->data->req).protop" (parenthesized_expression "(conn->data->req)" ( (field_expression "conn->data->req" (field_expression "conn->data" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar17 = *(undefined4 **)((int)pvVar5 + 8);" (assignment_expression "puVar17 = *(undefined4 **)((int)pvVar5 + 8)" identifier = (pointer_expression "*(undefined4 **)((int)pvVar5 + 8)" * (cast_expression "(undefined4 **)((int)pvVar5 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar5 + 8)" ( (binary_expression "(int)pvVar5 + 8" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar14 = *(char **)((int)pvVar5 + 4);" (assignment_expression "pcVar14 = *(char **)((int)pvVar5 + 4)" identifier = (pointer_expression "*(char **)((int)pvVar5 + 4)" * (cast_expression "(char **)((int)pvVar5 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar5 + 4)" ( (binary_expression "(int)pvVar5 + 4" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (puVar17 != (undefined4 *)0x0) goto LAB_0005d094;" if (parenthesized_expression "(puVar17 != (undefined4 *)0x0)" ( (binary_expression "puVar17 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005d094;" goto statement_identifier ;)) (if_statement "if (pcVar14 == (char *)0x0) {\n                pcVar14 = "HELP";\n              }\n              else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pcVar14 = "HELP";\n              }" { (expression_statement "pcVar14 = "HELP";" (assignment_expression "pcVar14 = "HELP"" identifier = (string_literal ""HELP"" " string_content ")) ;) }) (else_clause "else if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }" else (if_statement "if (*pcVar14 == '\0') {\n                pcVar14 = "HELP";\n              }" if (parenthesized_expression "(*pcVar14 == '\0')" ( (binary_expression "*pcVar14 == '\0'" (pointer_expression "*pcVar14" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar14 = "HELP";\n              }" { (expression_statement "pcVar14 = "HELP";" (assignment_expression "pcVar14 = "HELP"" identifier = (string_literal ""HELP"" " string_content ")) ;) })))) (expression_statement "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14);" (assignment_expression "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14)" identifier = (call_expression "Curl_pp_sendf(&(pp->ftpc).pp,"%s",pcVar14)" identifier (argument_list "(&(pp->ftpc).pp,"%s",pcVar14)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (string_literal ""%s"" " string_content ") , identifier )))) ;) (goto_statement "goto LAB_0005d0bf;" goto statement_identifier ;) })) (expression_statement "(conn->proto).ftpc.entrypath = (char *)0x0;" (assignment_expression "(conn->proto).ftpc.entrypath = (char *)0x0" (field_expression "(conn->proto).ftpc.entrypath" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (local_54 != CURLE_OK) goto LAB_0005cdac;" if (parenthesized_expression "(local_54 != CURLE_OK)" ( (binary_expression "local_54 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (labeled_statement "LAB_0005d147:\n          local_54 = CVar10;" statement_identifier : (expression_statement "local_54 = CVar10;" (assignment_expression "local_54 = CVar10" identifier = identifier) ;)) (if_statement "if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;" if (parenthesized_expression "((conn->proto).ftpc.entrypath == (char *)0x0)" ( (binary_expression "(conn->proto).ftpc.entrypath == (char *)0x0" (field_expression "(conn->proto).ftpc.entrypath" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) }) (else_clause "else {\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }" else (compound_statement "{\n          if (smtpcode == 1) goto LAB_0005cd48;\n          if (iVar6 == 0) break;\n          iVar7 = *(int *)(iVar6 + 4);\n          *(int *)((int)pvVar5 + 8) = iVar7;\n          if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }\n          pvVar5 = (pCVar11->req).protop;\n          puVar17 = *(undefined4 **)((int)pvVar5 + 8);\n          pcVar14 = *(char **)((int)pvVar5 + 4);\nLAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);\nLAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;\n          (conn->proto).sshc.readdir_totalLen = 7;\n        }" { (if_statement "if (smtpcode == 1) goto LAB_0005cd48;" if (parenthesized_expression "(smtpcode == 1)" ( (binary_expression "smtpcode == 1" identifier == number_literal) )) (goto_statement "goto LAB_0005cd48;" goto statement_identifier ;)) (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = *(int *)(iVar6 + 4);" (assignment_expression "iVar7 = *(int *)(iVar6 + 4)" identifier = (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)((int)pvVar5 + 8) = iVar7;" (assignment_expression "*(int *)((int)pvVar5 + 8) = iVar7" (pointer_expression "*(int *)((int)pvVar5 + 8)" * (cast_expression "(int *)((int)pvVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar5 + 8)" ( (binary_expression "(int)pvVar5 + 8" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            (conn->proto).ftpc.entrypath = (char *)0x0;\n            goto LAB_0005cdac;\n          }" { (expression_statement "(conn->proto).ftpc.entrypath = (char *)0x0;" (assignment_expression "(conn->proto).ftpc.entrypath = (char *)0x0" (field_expression "(conn->proto).ftpc.entrypath" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) (expression_statement "pvVar5 = (pCVar11->req).protop;" (assignment_expression "pvVar5 = (pCVar11->req).protop" identifier = (field_expression "(pCVar11->req).protop" (parenthesized_expression "(pCVar11->req)" ( (field_expression "pCVar11->req" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar17 = *(undefined4 **)((int)pvVar5 + 8);" (assignment_expression "puVar17 = *(undefined4 **)((int)pvVar5 + 8)" identifier = (pointer_expression "*(undefined4 **)((int)pvVar5 + 8)" * (cast_expression "(undefined4 **)((int)pvVar5 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar5 + 8)" ( (binary_expression "(int)pvVar5 + 8" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar14 = *(char **)((int)pvVar5 + 4);" (assignment_expression "pcVar14 = *(char **)((int)pvVar5 + 4)" identifier = (pointer_expression "*(char **)((int)pvVar5 + 4)" * (cast_expression "(char **)((int)pvVar5 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar5 + 4)" ( (binary_expression "(int)pvVar5 + 4" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (labeled_statement "LAB_0005d094:\n          if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }" statement_identifier : (if_statement "if (pcVar14 == (char *)0x0) {\n            pcVar14 = "VRFY";\n          }\n          else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar14 = "VRFY";\n          }" { (expression_statement "pcVar14 = "VRFY";" (assignment_expression "pcVar14 = "VRFY"" identifier = (string_literal ""VRFY"" " string_content ")) ;) }) (else_clause "else if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }" else (if_statement "if (*pcVar14 == '\0') {\n            pcVar14 = "VRFY";\n          }" if (parenthesized_expression "(*pcVar14 == '\0')" ( (binary_expression "*pcVar14 == '\0'" (pointer_expression "*pcVar14" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pcVar14 = "VRFY";\n          }" { (expression_statement "pcVar14 = "VRFY";" (assignment_expression "pcVar14 = "VRFY"" identifier = (string_literal ""VRFY"" " string_content ")) ;) }))))) (expression_statement "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17);" (assignment_expression "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17)" identifier = (call_expression "Curl_pp_sendf(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17)" identifier (argument_list "(&(pp->ftpc).pp,"%s %s",pcVar14,*puVar17)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (string_literal ""%s %s"" " string_content ") , identifier , (pointer_expression "*puVar17" * identifier) )))) ;) (labeled_statement "LAB_0005d0bf:\n          if (local_54 != CURLE_OK) goto LAB_0005cdac;" statement_identifier : (if_statement "if (local_54 != CURLE_OK) goto LAB_0005cdac;" if (parenthesized_expression "(local_54 != CURLE_OK)" ( (binary_expression "local_54 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;))) (expression_statement "(conn->proto).sshc.readdir_totalLen = 7;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 7" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) }))) (labeled_statement "LAB_0005cd48:\n        _Var9 = Curl_pp_moredata(&(pp->ftpc).pp);" statement_identifier : (expression_statement "_Var9 = Curl_pp_moredata(&(pp->ftpc).pp);" (assignment_expression "_Var9 = Curl_pp_moredata(&(pp->ftpc).pp)" identifier = (call_expression "Curl_pp_moredata(&(pp->ftpc).pp)" identifier (argument_list "(&(pp->ftpc).pp)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) )))) ;)) (expression_statement "local_54 = CVar10;" (assignment_expression "local_54 = CVar10" identifier = identifier) ;) (if_statement "if (!_Var9) goto LAB_0005cdac;" if (parenthesized_expression "(!_Var9)" ( (unary_expression "!_Var9" ! identifier) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (goto_statement "goto LAB_0005cc28;" goto statement_identifier ;)) (case_statement "case 8:\n_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }\n        Curl_failf(conn->data,"MAIL failed: %d",smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;" case number_literal : (labeled_statement "_L277:\n        if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }" statement_identifier : (if_statement "if (smtpcode - 200U < 100) {\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }" if (parenthesized_expression "(smtpcode - 200U < 100)" ( (binary_expression "smtpcode - 200U < 100" (binary_expression "smtpcode - 200U" identifier - number_literal) < number_literal) )) (compound_statement "{\n          pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);\n          cVar2 = *pcVar14;\n          goto joined_r0x0005cd1e;\n        }" { (expression_statement "pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8);" (assignment_expression "pcVar14 = (char *)**(undefined4 **)((int)(conn->data->req).protop + 8)" identifier = (cast_expression "(char *)**(undefined4 **)((int)(conn->data->req).protop + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)((int)(conn->data->req).protop + 8)" * (pointer_expression "*(undefined4 **)((int)(conn->data->req).protop + 8)" * (cast_expression "(undefined4 **)((int)(conn->data->req).protop + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)(conn->data->req).protop + 8)" ( (binary_expression "(int)(conn->data->req).protop + 8" (cast_expression "(int)(conn->data->req).protop" ( (type_descriptor "int" primitive_type) ) (field_expression "(conn->data->req).protop" (parenthesized_expression "(conn->data->req)" ( (field_expression "conn->data->req" (field_expression "conn->data" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) + number_literal) ))))))) ;) (expression_statement "cVar2 = *pcVar14;" (assignment_expression "cVar2 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (goto_statement "goto joined_r0x0005cd1e;" goto statement_identifier ;) }))) (expression_statement "Curl_failf(conn->data,"MAIL failed: %d",smtpcode);" (call_expression "Curl_failf(conn->data,"MAIL failed: %d",smtpcode)" identifier (argument_list "(conn->data,"MAIL failed: %d",smtpcode)" ( (field_expression "conn->data" identifier -> field_identifier) , (string_literal ""MAIL failed: %d"" " string_content ") , identifier ))) ;) (expression_statement "local_54 = CURLE_SEND_ERROR;" (assignment_expression "local_54 = CURLE_SEND_ERROR" identifier = identifier) ;) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (case_statement "case 9:\n_L276:\n        pCVar11 = conn->data;\n        if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }\n        pvVar5 = (pCVar11->req).protop;\n        puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);\n        *(undefined4 **)((int)pvVar5 + 8) = puVar17;\n        if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }\n        goto LAB_0005cdac;" case number_literal : (labeled_statement "_L276:\n        pCVar11 = conn->data;" statement_identifier : (expression_statement "pCVar11 = conn->data;" (assignment_expression "pCVar11 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;)) (if_statement "if (99 < smtpcode - 200U) {\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }" if (parenthesized_expression "(99 < smtpcode - 200U)" ( (binary_expression "99 < smtpcode - 200U" number_literal < (binary_expression "smtpcode - 200U" identifier - number_literal)) )) (compound_statement "{\n          pcVar14 = "RCPT failed: %d";\n          goto LAB_0005ccd1;\n        }" { (expression_statement "pcVar14 = "RCPT failed: %d";" (assignment_expression "pcVar14 = "RCPT failed: %d"" identifier = (string_literal ""RCPT failed: %d"" " string_content ")) ;) (goto_statement "goto LAB_0005ccd1;" goto statement_identifier ;) })) (expression_statement "pvVar5 = (pCVar11->req).protop;" (assignment_expression "pvVar5 = (pCVar11->req).protop" identifier = (field_expression "(pCVar11->req).protop" (parenthesized_expression "(pCVar11->req)" ( (field_expression "pCVar11->req" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4);" (assignment_expression "puVar17 = *(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4)" * (cast_expression "(undefined4 **)(*(int *)((int)pvVar5 + 8) + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)pvVar5 + 8) + 4)" ( (binary_expression "*(int *)((int)pvVar5 + 8) + 4" (pointer_expression "*(int *)((int)pvVar5 + 8)" * (cast_expression "(int *)((int)pvVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar5 + 8)" ( (binary_expression "(int)pvVar5 + 8" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 **)((int)pvVar5 + 8) = puVar17;" (assignment_expression "*(undefined4 **)((int)pvVar5 + 8) = puVar17" (pointer_expression "*(undefined4 **)((int)pvVar5 + 8)" * (cast_expression "(undefined4 **)((int)pvVar5 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar5 + 8)" ( (binary_expression "(int)pvVar5 + 8" (cast_expression "(int)pvVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (puVar17 == (undefined4 *)0x0) {\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }\n        else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }" if (parenthesized_expression "(puVar17 == (undefined4 *)0x0)" ( (binary_expression "puVar17 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }\n        }" { (expression_statement "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18);" (assignment_expression "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18)" identifier = (call_expression "Curl_pp_sendf(&(pp->ftpc).pp,"%s",&DAT_0008ba18)" identifier (argument_list "(&(pp->ftpc).pp,"%s",&DAT_0008ba18)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (string_literal ""%s"" " string_content ") , (pointer_expression "&DAT_0008ba18" & identifier) )))) ;) (if_statement "if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }" if (parenthesized_expression "(local_54 == CURLE_OK)" ( (binary_expression "local_54 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n            (conn->proto).sshc.readdir_totalLen = 10;\n            goto LAB_0005cd48;\n          }" { (expression_statement "(conn->proto).sshc.readdir_totalLen = 10;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 10" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0005cd48;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }" else (compound_statement "{\n          pcVar14 = (char *)*puVar17;\n          cVar2 = *pcVar14;\njoined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }\n          if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }\n        }" { (expression_statement "pcVar14 = (char *)*puVar17;" (assignment_expression "pcVar14 = (char *)*puVar17" identifier = (cast_expression "(char *)*puVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier))) ;) (expression_statement "cVar2 = *pcVar14;" (assignment_expression "cVar2 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (labeled_statement "joined_r0x0005cd1e:\n          if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }" statement_identifier : (if_statement "if (cVar2 == '<') {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }\n          else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }" if (parenthesized_expression "(cVar2 == '<')" ( (binary_expression "cVar2 == '<'" identifier == (char_literal "'<'" ' character ')) )) (compound_statement "{\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);\n          }" { (expression_statement "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14);" (assignment_expression "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14)" identifier = (call_expression "Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14)" identifier (argument_list "(&(pp->ftpc).pp,"RCPT TO:%s",pcVar14)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (string_literal ""RCPT TO:%s"" " string_content ") , identifier )))) ;) }) (else_clause "else {\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }" else (compound_statement "{\n            local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);\n          }" { (expression_statement "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14);" (assignment_expression "local_54 = Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14)" identifier = (call_expression "Curl_pp_sendf(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14)" identifier (argument_list "(&(pp->ftpc).pp,"RCPT TO:<%s>",pcVar14)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) , (string_literal ""RCPT TO:<%s>"" " string_content ") , identifier )))) ;) })))) (if_statement "if (local_54 == CURLE_OK) {\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }" if (parenthesized_expression "(local_54 == CURLE_OK)" ( (binary_expression "local_54 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n            (conn->proto).sshc.readdir_totalLen = 9;\n            goto LAB_0005cd48;\n          }" { (expression_statement "(conn->proto).sshc.readdir_totalLen = 9;" (assignment_expression "(conn->proto).sshc.readdir_totalLen = 9" (field_expression "(conn->proto).sshc.readdir_totalLen" (field_expression "(conn->proto).sshc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0005cd48;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (case_statement "case 10:\n_L275:\n        pCVar11 = conn->data;\n        if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }\n        pcVar14 = "DATA failed: %d";\nLAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);\n        local_54 = CURLE_SEND_ERROR;\n        goto LAB_0005cdac;" case number_literal : (labeled_statement "_L275:\n        pCVar11 = conn->data;" statement_identifier : (expression_statement "pCVar11 = conn->data;" (assignment_expression "pCVar11 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;)) (if_statement "if (smtpcode == 0x162) {\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }" if (parenthesized_expression "(smtpcode == 0x162)" ( (binary_expression "smtpcode == 0x162" identifier == number_literal) )) (compound_statement "{\n          Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);\n          Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);\n          (conn->proto).ftpc.entrypath = (char *)0x0;\n          goto LAB_0005ce7a;\n        }" { (expression_statement "Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize);" (call_expression "Curl_pgrsSetUploadSize(pCVar11,(pCVar11->state).infilesize)" identifier (argument_list "(pCVar11,(pCVar11->state).infilesize)" ( identifier , (field_expression "(pCVar11->state).infilesize" (parenthesized_expression "(pCVar11->state)" ( (field_expression "pCVar11->state" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0);" (call_expression "Curl_setup_transfer(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0)" identifier (argument_list "(conn,-1,-1,false,(curl_off_t *)0x0,0,(curl_off_t *)0x0)" ( identifier , number_literal , number_literal , false , (cast_expression "(curl_off_t *)0x0" ( (type_descriptor "curl_off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(curl_off_t *)0x0" ( (type_descriptor "curl_off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "(conn->proto).ftpc.entrypath = (char *)0x0;" (assignment_expression "(conn->proto).ftpc.entrypath = (char *)0x0" (field_expression "(conn->proto).ftpc.entrypath" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0005ce7a;" goto statement_identifier ;) })) (expression_statement "pcVar14 = "DATA failed: %d";" (assignment_expression "pcVar14 = "DATA failed: %d"" identifier = (string_literal ""DATA failed: %d"" " string_content ")) ;) (labeled_statement "LAB_0005ccd1:\n        Curl_failf(pCVar11,pcVar14,smtpcode);" statement_identifier : (expression_statement "Curl_failf(pCVar11,pcVar14,smtpcode);" (call_expression "Curl_failf(pCVar11,pcVar14,smtpcode)" identifier (argument_list "(pCVar11,pcVar14,smtpcode)" ( identifier , identifier , identifier ))) ;)) (expression_statement "local_54 = CURLE_SEND_ERROR;" (assignment_expression "local_54 = CURLE_SEND_ERROR" identifier = identifier) ;) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (case_statement "case 0xb:\n        if (smtpcode != 0xfa) goto _L400;" case number_literal : (if_statement "if (smtpcode != 0xfa) goto _L400;" if (parenthesized_expression "(smtpcode != 0xfa)" ( (binary_expression "smtpcode != 0xfa" identifier != number_literal) )) (goto_statement "goto _L400;" goto statement_identifier ;))) })) (labeled_statement "_L272:\n      (conn->proto).ftpc.entrypath = (char *)0x0;" statement_identifier : (expression_statement "(conn->proto).ftpc.entrypath = (char *)0x0;" (assignment_expression "(conn->proto).ftpc.entrypath = (char *)0x0" (field_expression "(conn->proto).ftpc.entrypath" (field_expression "(conn->proto).ftpc" (parenthesized_expression "(conn->proto)" ( (field_expression "conn->proto" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0005ce7a;" goto statement_identifier ;) })) (expression_statement "local_54 = Curl_pp_flushsend(&(pp->ftpc).pp);" (assignment_expression "local_54 = Curl_pp_flushsend(&(pp->ftpc).pp)" identifier = (call_expression "Curl_pp_flushsend(&(pp->ftpc).pp)" identifier (argument_list "(&(pp->ftpc).pp)" ( (pointer_expression "&(pp->ftpc).pp" & (field_expression "(pp->ftpc).pp" (parenthesized_expression "(pp->ftpc)" ( (field_expression "pp->ftpc" identifier -> field_identifier) )) . field_identifier)) )))) ;) }))) (labeled_statement "LAB_0005cdac:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return local_54;" return identifier ;) })))
(translation_unit "int FUN_0005cba0(void)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  int local_58;\n  int local_30 [3];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_30[1] = 0;\n  iVar3 = *unaff_retaddr;\n  piVar1 = unaff_retaddr + 0x129;\n  if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }\nLAB_0005ce7a:\n  local_58 = 0;\nLAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00082f60();\n  }\n  return local_58;\n}\n\n" (function_definition "int FUN_0005cba0(void)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  int local_58;\n  int local_30 [3];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_30[1] = 0;\n  iVar3 = *unaff_retaddr;\n  piVar1 = unaff_retaddr + 0x129;\n  if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }\nLAB_0005ce7a:\n  local_58 = 0;\nLAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00082f60();\n  }\n  return local_58;\n}" primitive_type (function_declarator "FUN_0005cba0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  int local_58;\n  int local_30 [3];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_30[1] = 0;\n  iVar3 = *unaff_retaddr;\n  piVar1 = unaff_retaddr + 0x129;\n  if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }\nLAB_0005ce7a:\n  local_58 = 0;\nLAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00082f60();\n  }\n  return local_58;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int *unaff_retaddr;" primitive_type (pointer_declarator "*unaff_retaddr" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_30 [3];" primitive_type (array_declarator "local_30 [3]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x5cba9;" (assignment_expression "uStack_14 = 0x5cba9" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_30[1] = 0;" (assignment_expression "local_30[1] = 0" (subscript_expression "local_30[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = *unaff_retaddr;" (assignment_expression "iVar3 = *unaff_retaddr" identifier = (pointer_expression "*unaff_retaddr" * identifier)) ;) (expression_statement "piVar1 = unaff_retaddr + 0x129;" (assignment_expression "piVar1 = unaff_retaddr + 0x129" identifier = (binary_expression "unaff_retaddr + 0x129" identifier + number_literal)) ;) (if_statement "if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }" if (parenthesized_expression "(unaff_retaddr[0x137] == 5)" ( (binary_expression "unaff_retaddr[0x137] == 5" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }" { (expression_statement "local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);" (assignment_expression "local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138)" identifier = (call_expression "FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138)" identifier (argument_list "(unaff_retaddr,0,unaff_retaddr + 0x138)" ( identifier , number_literal , (binary_expression "unaff_retaddr + 0x138" identifier + number_literal) )))) ;) (if_statement "if (local_58 != 0) goto LAB_0005cdac;" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (if_statement "if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }" if (parenthesized_expression "(unaff_retaddr[0x137] != 5)" ( (binary_expression "unaff_retaddr[0x137] != 5" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      unaff_retaddr[0x137] = 5;\n    }" { (expression_statement "unaff_retaddr[0x137] = 5;" (assignment_expression "unaff_retaddr[0x137] = 5" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }" if (parenthesized_expression "((char)unaff_retaddr[0x138] != '\0')" ( (binary_expression "(char)unaff_retaddr[0x138] != '\0'" (cast_expression "(char)unaff_retaddr[0x138]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_retaddr[0x138]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }" { (expression_statement "*(undefined1 *)(unaff_retaddr + 0x92) = 1;" (assignment_expression "*(undefined1 *)(unaff_retaddr + 0x92) = 1" (pointer_expression "*(undefined1 *)(unaff_retaddr + 0x92)" * (cast_expression "(undefined1 *)(unaff_retaddr + 0x92)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x92)" ( (binary_expression "unaff_retaddr + 0x92" identifier + number_literal) )))) = number_literal) ;) (expression_statement "unaff_retaddr[0x13c] = 0;" (assignment_expression "unaff_retaddr[0x13c] = 0" (subscript_expression "unaff_retaddr[0x13c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;" (assignment_expression "unaff_retaddr[0x9f] = unaff_EBX + 0x590f7" (subscript_expression "unaff_retaddr[0x9f]" identifier [ number_literal ]) = (binary_expression "unaff_EBX + 0x590f7" identifier + number_literal)) ;) (expression_statement "unaff_retaddr[0x13e] = 0;" (assignment_expression "unaff_retaddr[0x13e] = 0" (subscript_expression "unaff_retaddr[0x13e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(unaff_retaddr + 0x140) = 0;" (assignment_expression "*(undefined1 *)(unaff_retaddr + 0x140) = 0" (pointer_expression "*(undefined1 *)(unaff_retaddr + 0x140)" * (cast_expression "(undefined1 *)(unaff_retaddr + 0x140)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x140)" ( (binary_expression "unaff_retaddr + 0x140" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)unaff_retaddr + 0x502) = 0;" (assignment_expression "*(undefined1 *)((int)unaff_retaddr + 0x502) = 0" (pointer_expression "*(undefined1 *)((int)unaff_retaddr + 0x502)" * (cast_expression "(undefined1 *)((int)unaff_retaddr + 0x502)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_retaddr + 0x502)" ( (binary_expression "(int)unaff_retaddr + 0x502" (cast_expression "(int)unaff_retaddr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);" (assignment_expression "local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139])" identifier = (call_expression "FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139])" identifier (argument_list "(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139])" ( identifier , (binary_expression "unaff_EBX + 0x2eddc" identifier + number_literal) , (subscript_expression "unaff_retaddr[0x139]" identifier [ number_literal ]) )))) ;) (if_statement "if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }" if (parenthesized_expression "(local_58 == 0)" ( (binary_expression "local_58 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_retaddr[0x137] = 2;\n      }" { (expression_statement "unaff_retaddr[0x137] = 2;" (assignment_expression "unaff_retaddr[0x137] = 2" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) = number_literal) ;) })) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }" else (compound_statement "{\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }" { (if_statement "if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }" if (parenthesized_expression "(unaff_retaddr[0x12f] != 0)" ( (binary_expression "unaff_retaddr[0x12f] != 0" (subscript_expression "unaff_retaddr[0x12f]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }" { (expression_statement "local_58 = FUN_0005e090(piVar1);" (assignment_expression "local_58 = FUN_0005e090(piVar1)" identifier = (call_expression "FUN_0005e090(piVar1)" identifier (argument_list "(piVar1)" ( identifier )))) ;) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;) })) (expression_statement "local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);" (assignment_expression "local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1)" identifier = (call_expression "FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1)" identifier (argument_list "(unaff_retaddr[100],piVar1,local_30,local_30 + 1)" ( (subscript_expression "unaff_retaddr[100]" identifier [ number_literal ]) , identifier , identifier , (binary_expression "local_30 + 1" identifier + number_literal) )))) ;) (if_statement "if (local_58 != 0) goto LAB_0005cdac;" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) (expression_statement "uVar2 = unaff_retaddr[0x137];" (assignment_expression "uVar2 = unaff_retaddr[0x137]" identifier = (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ])) ;) (if_statement "if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" if (parenthesized_expression "(uVar2 == 0xc)" ( (binary_expression "uVar2 == 0xc" identifier == number_literal) )) (compound_statement "{\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }" { (if_statement "if (local_30[0] == 0) goto LAB_0005cdac;" if (parenthesized_expression "(local_30[0] == 0)" ( (binary_expression "local_30[0] == 0" (subscript_expression "local_30[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0005cdac;" goto statement_identifier ;)) }) (else_clause "else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" else (if_statement "if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" if (parenthesized_expression "(local_30[0] == 1)" ( (binary_expression "local_30[0] == 1" (subscript_expression "local_30[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" { (if_statement "if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" if (parenthesized_expression "(uVar2 < 0xc)" ( (binary_expression "uVar2 < 0xc" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" { (expression_statement "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;" (assignment_expression "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()" identifier = (call_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()" (parenthesized_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))" ( (pointer_expression "*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX)" * (cast_expression "(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX)" ( (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX" (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4)" (pointer_expression "&UNK_00059c37" & identifier) + (pointer_expression "*(int *)(unaff_EBX + 0x2eeef + uVar2 * 4)" * (cast_expression "(int *)(unaff_EBX + 0x2eeef + uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x2eeef + uVar2 * 4)" ( (binary_expression "unaff_EBX + 0x2eeef + uVar2 * 4" (binary_expression "unaff_EBX + 0x2eeef" identifier + number_literal) + (binary_expression "uVar2 * 4" identifier * number_literal)) ))))) + identifier) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) }) (else_clause "else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" else (compound_statement "{\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" { (expression_statement "*(int *)(iVar3 + 0xf48) = local_30[0];" (assignment_expression "*(int *)(iVar3 + 0xf48) = local_30[0]" (pointer_expression "*(int *)(iVar3 + 0xf48)" * (cast_expression "(int *)(iVar3 + 0xf48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xf48)" ( (binary_expression "iVar3 + 0xf48" identifier + number_literal) )))) = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) (if_statement "if (local_30[0] == 0) goto LAB_0005ce7a;" if (parenthesized_expression "(local_30[0] == 0)" ( (binary_expression "local_30[0] == 0" (subscript_expression "local_30[0]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0005ce7a;" goto statement_identifier ;)) (if_statement "if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" if (parenthesized_expression "(uVar2 < 0xc)" ( (binary_expression "uVar2 < 0xc" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" { (expression_statement "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;" (assignment_expression "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()" identifier = (call_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()" (parenthesized_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))" ( (pointer_expression "*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX)" * (cast_expression "(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX)" ( (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX" (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4)" (pointer_expression "&UNK_00059c37" & identifier) + (pointer_expression "*(int *)(unaff_EBX + 0x2eebf + uVar2 * 4)" * (cast_expression "(int *)(unaff_EBX + 0x2eebf + uVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x2eebf + uVar2 * 4)" ( (binary_expression "unaff_EBX + 0x2eebf + uVar2 * 4" (binary_expression "unaff_EBX + 0x2eebf" identifier + number_literal) + (binary_expression "uVar2 * 4" identifier * number_literal)) ))))) + identifier) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) }))))) (expression_statement "unaff_retaddr[0x137] = 0;" (assignment_expression "unaff_retaddr[0x137] = 0" (subscript_expression "unaff_retaddr[0x137]" identifier [ number_literal ]) = number_literal) ;) }))) (labeled_statement "LAB_0005ce7a:\n  local_58 = 0;" statement_identifier : (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00082f60();\n  }" statement_identifier : (if_statement "if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00082f60();\n  }" if (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_00082f60();\n  }" { (expression_statement "FUN_00082f60();" (call_expression "FUN_00082f60()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return local_58;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (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 IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) + IDENT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) + IDENT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) }))))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_0005cba0(void)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  int local_58;\n  int local_30 [3];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_30[1] = 0;\n  iVar3 = *unaff_retaddr;\n  piVar1 = unaff_retaddr + 0x129;\n  if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }\nLAB_0005ce7a:\n  local_58 = 0;\nLAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00082f60();\n  }\n  return local_58;\n}" (primitive_type "int") (function_declarator "FUN_0005cba0(void)" (identifier "FUN_0005cba0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_GS_OFFSET;\n  int *unaff_retaddr;\n  int local_58;\n  int local_30 [3];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x5cba9;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  local_30[1] = 0;\n  iVar3 = *unaff_retaddr;\n  piVar1 = unaff_retaddr + 0x129;\n  if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }\nLAB_0005ce7a:\n  local_58 = 0;\nLAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00082f60();\n  }\n  return local_58;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int unaff_EBX;" (primitive_type "int") (identifier "unaff_EBX") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int *unaff_retaddr;" (primitive_type "int") (pointer_declarator "*unaff_retaddr" (* "*") (identifier "unaff_retaddr")) (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "int local_30 [3];" (primitive_type "int") (array_declarator "local_30 [3]" (identifier "local_30") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x5cba9;" (assignment_expression "uStack_14 = 0x5cba9" (identifier "uStack_14") (= "=") (number_literal "0x5cba9")) (; ";")) (expression_statement "entry();" (call_expression "entry()" (identifier "entry") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_30[1] = 0;" (assignment_expression "local_30[1] = 0" (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = *unaff_retaddr;" (assignment_expression "iVar3 = *unaff_retaddr" (identifier "iVar3") (= "=") (pointer_expression "*unaff_retaddr" (* "*") (identifier "unaff_retaddr"))) (; ";")) (expression_statement "piVar1 = unaff_retaddr + 0x129;" (assignment_expression "piVar1 = unaff_retaddr + 0x129" (identifier "piVar1") (= "=") (binary_expression "unaff_retaddr + 0x129" (identifier "unaff_retaddr") (+ "+") (number_literal "0x129"))) (; ";")) (if_statement "if (unaff_retaddr[0x137] == 5) {\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }\n  else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }" (if "if") (parenthesized_expression "(unaff_retaddr[0x137] == 5)" (( "(") (binary_expression "unaff_retaddr[0x137] == 5" (subscript_expression "unaff_retaddr[0x137]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x137") (] "]")) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);\n    if (local_58 != 0) goto LAB_0005cdac;\n    if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }\n    if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }\n  }" ({ "{") (expression_statement "local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);" (assignment_expression "local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138)" (identifier "local_58") (= "=") (call_expression "FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138)" (identifier "FUN_000816b0") (argument_list "(unaff_retaddr,0,unaff_retaddr + 0x138)" (( "(") (identifier "unaff_retaddr") (, ",") (number_literal "0") (, ",") (binary_expression "unaff_retaddr + 0x138" (identifier "unaff_retaddr") (+ "+") (number_literal "0x138")) () ")")))) (; ";")) (if_statement "if (local_58 != 0) goto LAB_0005cdac;" (if "if") (parenthesized_expression "(local_58 != 0)" (( "(") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005cdac;" (goto "goto") (statement_identifier "LAB_0005cdac") (; ";"))) (if_statement "if (unaff_retaddr[0x137] != 5) {\n      unaff_retaddr[0x137] = 5;\n    }" (if "if") (parenthesized_expression "(unaff_retaddr[0x137] != 5)" (( "(") (binary_expression "unaff_retaddr[0x137] != 5" (subscript_expression "unaff_retaddr[0x137]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x137") (] "]")) (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n      unaff_retaddr[0x137] = 5;\n    }" ({ "{") (expression_statement "unaff_retaddr[0x137] = 5;" (assignment_expression "unaff_retaddr[0x137] = 5" (subscript_expression "unaff_retaddr[0x137]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x137") (] "]")) (= "=") (number_literal "5")) (; ";")) (} "}"))) (if_statement "if ((char)unaff_retaddr[0x138] != '\0') {\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }" (if "if") (parenthesized_expression "((char)unaff_retaddr[0x138] != '\0')" (( "(") (binary_expression "(char)unaff_retaddr[0x138] != '\0'" (cast_expression "(char)unaff_retaddr[0x138]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "unaff_retaddr[0x138]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x138") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(undefined1 *)(unaff_retaddr + 0x92) = 1;\n      unaff_retaddr[0x13c] = 0;\n      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;\n      unaff_retaddr[0x13e] = 0;\n      *(undefined1 *)(unaff_retaddr + 0x140) = 0;\n      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;\n      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);\n      if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }\n      goto LAB_0005cdac;\n    }" ({ "{") (expression_statement "*(undefined1 *)(unaff_retaddr + 0x92) = 1;" (assignment_expression "*(undefined1 *)(unaff_retaddr + 0x92) = 1" (pointer_expression "*(undefined1 *)(unaff_retaddr + 0x92)" (* "*") (cast_expression "(undefined1 *)(unaff_retaddr + 0x92)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x92)" (( "(") (binary_expression "unaff_retaddr + 0x92" (identifier "unaff_retaddr") (+ "+") (number_literal "0x92")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "unaff_retaddr[0x13c] = 0;" (assignment_expression "unaff_retaddr[0x13c] = 0" (subscript_expression "unaff_retaddr[0x13c]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x13c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;" (assignment_expression "unaff_retaddr[0x9f] = unaff_EBX + 0x590f7" (subscript_expression "unaff_retaddr[0x9f]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x9f") (] "]")) (= "=") (binary_expression "unaff_EBX + 0x590f7" (identifier "unaff_EBX") (+ "+") (number_literal "0x590f7"))) (; ";")) (expression_statement "unaff_retaddr[0x13e] = 0;" (assignment_expression "unaff_retaddr[0x13e] = 0" (subscript_expression "unaff_retaddr[0x13e]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x13e") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(unaff_retaddr + 0x140) = 0;" (assignment_expression "*(undefined1 *)(unaff_retaddr + 0x140) = 0" (pointer_expression "*(undefined1 *)(unaff_retaddr + 0x140)" (* "*") (cast_expression "(undefined1 *)(unaff_retaddr + 0x140)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x140)" (( "(") (binary_expression "unaff_retaddr + 0x140" (identifier "unaff_retaddr") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)unaff_retaddr + 0x502) = 0;" (assignment_expression "*(undefined1 *)((int)unaff_retaddr + 0x502) = 0" (pointer_expression "*(undefined1 *)((int)unaff_retaddr + 0x502)" (* "*") (cast_expression "(undefined1 *)((int)unaff_retaddr + 0x502)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_retaddr + 0x502)" (( "(") (binary_expression "(int)unaff_retaddr + 0x502" (cast_expression "(int)unaff_retaddr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_retaddr")) (+ "+") (number_literal "0x502")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);" (assignment_expression "local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139])" (identifier "local_58") (= "=") (call_expression "FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139])" (identifier "FUN_0005dc30") (argument_list "(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139])" (( "(") (identifier "piVar1") (, ",") (binary_expression "unaff_EBX + 0x2eddc" (identifier "unaff_EBX") (+ "+") (number_literal "0x2eddc")) (, ",") (subscript_expression "unaff_retaddr[0x139]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x139") (] "]")) () ")")))) (; ";")) (if_statement "if (local_58 == 0) {\n        unaff_retaddr[0x137] = 2;\n      }" (if "if") (parenthesized_expression "(local_58 == 0)" (( "(") (binary_expression "local_58 == 0" (identifier "local_58") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        unaff_retaddr[0x137] = 2;\n      }" ({ "{") (expression_statement "unaff_retaddr[0x137] = 2;" (assignment_expression "unaff_retaddr[0x137] = 2" (subscript_expression "unaff_retaddr[0x137]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x137") (] "]")) (= "=") (number_literal "2")) (; ";")) (} "}"))) (goto_statement "goto LAB_0005cdac;" (goto "goto") (statement_identifier "LAB_0005cdac") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }" (else "else") (compound_statement "{\n    if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }\n    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);\n    if (local_58 != 0) goto LAB_0005cdac;\n    uVar2 = unaff_retaddr[0x137];\n    if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    unaff_retaddr[0x137] = 0;\n  }" ({ "{") (if_statement "if (unaff_retaddr[0x12f] != 0) {\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }" (if "if") (parenthesized_expression "(unaff_retaddr[0x12f] != 0)" (( "(") (binary_expression "unaff_retaddr[0x12f] != 0" (subscript_expression "unaff_retaddr[0x12f]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x12f") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_58 = FUN_0005e090(piVar1);\n      goto LAB_0005cdac;\n    }" ({ "{") (expression_statement "local_58 = FUN_0005e090(piVar1);" (assignment_expression "local_58 = FUN_0005e090(piVar1)" (identifier "local_58") (= "=") (call_expression "FUN_0005e090(piVar1)" (identifier "FUN_0005e090") (argument_list "(piVar1)" (( "(") (identifier "piVar1") () ")")))) (; ";")) (goto_statement "goto LAB_0005cdac;" (goto "goto") (statement_identifier "LAB_0005cdac") (; ";")) (} "}"))) (expression_statement "local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);" (assignment_expression "local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1)" (identifier "local_58") (= "=") (call_expression "FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1)" (identifier "FUN_0005dc60") (argument_list "(unaff_retaddr[100],piVar1,local_30,local_30 + 1)" (( "(") (subscript_expression "unaff_retaddr[100]" (identifier "unaff_retaddr") ([ "[") (number_literal "100") (] "]")) (, ",") (identifier "piVar1") (, ",") (identifier "local_30") (, ",") (binary_expression "local_30 + 1" (identifier "local_30") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (local_58 != 0) goto LAB_0005cdac;" (if "if") (parenthesized_expression "(local_58 != 0)" (( "(") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005cdac;" (goto "goto") (statement_identifier "LAB_0005cdac") (; ";"))) (expression_statement "uVar2 = unaff_retaddr[0x137];" (assignment_expression "uVar2 = unaff_retaddr[0x137]" (identifier "uVar2") (= "=") (subscript_expression "unaff_retaddr[0x137]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x137") (] "]"))) (; ";")) (if_statement "if (uVar2 == 0xc) {\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }\n    else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" (if "if") (parenthesized_expression "(uVar2 == 0xc)" (( "(") (binary_expression "uVar2 == 0xc" (identifier "uVar2") (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n      if (local_30[0] == 0) goto LAB_0005cdac;\n    }" ({ "{") (if_statement "if (local_30[0] == 0) goto LAB_0005cdac;" (if "if") (parenthesized_expression "(local_30[0] == 0)" (( "(") (binary_expression "local_30[0] == 0" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005cdac;" (goto "goto") (statement_identifier "LAB_0005cdac") (; ";"))) (} "}")) (else_clause "else if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" (else "else") (if_statement "if (local_30[0] == 1) {\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }\n    else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" (if "if") (parenthesized_expression "(local_30[0] == 1)" (( "(") (binary_expression "local_30[0] == 1" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" ({ "{") (if_statement "if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" (if "if") (parenthesized_expression "(uVar2 < 0xc)" (( "(") (binary_expression "uVar2 < 0xc" (identifier "uVar2") (< "<") (number_literal "0xc")) () ")")) (compound_statement "{\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" ({ "{") (expression_statement "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()\n        ;" (assignment_expression "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()" (identifier "iVar3") (= "=") (call_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()" (parenthesized_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))" (( "(") (pointer_expression "*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX)" (* "*") (cast_expression "(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX)" (( "(") (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX" (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4)" (pointer_expression "&UNK_00059c37" (& "&") (identifier "UNK_00059c37")) (+ "+") (pointer_expression "*(int *)(unaff_EBX + 0x2eeef + uVar2 * 4)" (* "*") (cast_expression "(int *)(unaff_EBX + 0x2eeef + uVar2 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBX + 0x2eeef + uVar2 * 4)" (( "(") (binary_expression "unaff_EBX + 0x2eeef + uVar2 * 4" (binary_expression "unaff_EBX + 0x2eeef" (identifier "unaff_EBX") (+ "+") (number_literal "0x2eeef")) (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (identifier "unaff_EBX")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" (else "else") (compound_statement "{\n      *(int *)(iVar3 + 0xf48) = local_30[0];\n      if (local_30[0] == 0) goto LAB_0005ce7a;\n      if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }\n    }" ({ "{") (expression_statement "*(int *)(iVar3 + 0xf48) = local_30[0];" (assignment_expression "*(int *)(iVar3 + 0xf48) = local_30[0]" (pointer_expression "*(int *)(iVar3 + 0xf48)" (* "*") (cast_expression "(int *)(iVar3 + 0xf48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xf48)" (( "(") (binary_expression "iVar3 + 0xf48" (identifier "iVar3") (+ "+") (number_literal "0xf48")) () ")")))) (= "=") (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (local_30[0] == 0) goto LAB_0005ce7a;" (if "if") (parenthesized_expression "(local_30[0] == 0)" (( "(") (binary_expression "local_30[0] == 0" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005ce7a;" (goto "goto") (statement_identifier "LAB_0005ce7a") (; ";"))) (if_statement "if (uVar2 < 0xc) {\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" (if "if") (parenthesized_expression "(uVar2 < 0xc)" (( "(") (binary_expression "uVar2 < 0xc" (identifier "uVar2") (< "<") (number_literal "0xc")) () ")")) (compound_statement "{\n                    \n                    \n        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;\n        return iVar3;\n      }" ({ "{") (expression_statement "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()\n        ;" (assignment_expression "iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()" (identifier "iVar3") (= "=") (call_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()" (parenthesized_expression "(*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))" (( "(") (pointer_expression "*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX)" (* "*") (cast_expression "(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX)" (( "(") (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX" (binary_expression "&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4)" (pointer_expression "&UNK_00059c37" (& "&") (identifier "UNK_00059c37")) (+ "+") (pointer_expression "*(int *)(unaff_EBX + 0x2eebf + uVar2 * 4)" (* "*") (cast_expression "(int *)(unaff_EBX + 0x2eebf + uVar2 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBX + 0x2eebf + uVar2 * 4)" (( "(") (binary_expression "unaff_EBX + 0x2eebf + uVar2 * 4" (binary_expression "unaff_EBX + 0x2eebf" (identifier "unaff_EBX") (+ "+") (number_literal "0x2eebf")) (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (identifier "unaff_EBX")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (} "}")))))) (expression_statement "unaff_retaddr[0x137] = 0;" (assignment_expression "unaff_retaddr[0x137] = 0" (subscript_expression "unaff_retaddr[0x137]" (identifier "unaff_retaddr") ([ "[") (number_literal "0x137") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0005ce7a:\n  local_58 = 0;" (statement_identifier "LAB_0005ce7a") (: ":") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0005cdac:\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00082f60();\n  }" (statement_identifier "LAB_0005cdac") (: ":") (if_statement "if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00082f60();\n  }" (if "if") (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_00082f60();\n  }" ({ "{") (expression_statement "FUN_00082f60();" (call_expression "FUN_00082f60()" (identifier "FUN_00082f60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return local_58;" (return "return") (identifier "local_58") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 function_1(type_2 *conn)

{
  type_3 *pp;
  type_4 *sasl;
  char **var_25;
  char var_37;
  type_5 sockfd;
  type_6 *pCVar3;
  size_t var_8;
  void *pvVar5;
  int var_33;
  int var_17;
  type_7 var_26;
  type_8 _Var9;
  type_1 var_7;
  type_6 *pCVar11;
  size_t var_14;
  type_9 var_18;
  char *var_16;
  type_10 var_15;
  type_11 *var_20;
  type_11 *pbVar16;
  type_12 *var_35;
  type_9 var_22;
  int var_1;
  type_1 var_3;
  int var_9;
  size_t nread;
  type_9 var_24;
  int var_41;
  type_12 uStack_14;
  
  uStack_14 = 0x5cba9;
  var_41 = *(int *)(var_1 + 0x14);
  nread = 0;
  sockfd = conn->sock[0];
  pCVar3 = conn->data;
  pp = &conn->proto;
  if ((conn->proto).ftpc.entrypath == (char *)0x5) {
    var_3 = var_2(conn,0,&(conn->proto).imapc.ssldone);
    if (var_3 == var_4) {
      if ((conn->proto).ftpc.entrypath != (char *)0x5) {
        (conn->proto).sshc.readdir_totalLen = 5;
      }
      if ((conn->proto).httpc.binsettings[0x38] == '\0') {
LAB_0005ce7a:
        var_3 = var_4;
      }
      else {
        conn->tls_upgraded = true;
        (conn->proto).sshc.slash_pos = (char *)0x0;
        conn->handler = &Curl_handler_smtps;
        (conn->proto).httpc.binlen = 0;
        (conn->proto).smtpc.tls_supported = false;
        (conn->proto).smtpc.auth_supported = false;
        var_3 = var_5(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);
        if (var_3 == var_4) {
          (conn->proto).sshc.readdir_totalLen = 2;
        }
      }
    }
  }
  else {
    if ((conn->proto).ftpc.pp.sendleft == 0) {
LAB_0005cc28:
      var_7 = var_6(sockfd,&(pp->ftpc).pp,&var_9,&nread);
      var_17 = var_9;
      var_3 = var_7;
      if (var_7 != var_4) goto LAB_0005cdac;
      var_8 = (conn->proto).sshc.readdir_totalLen;
      if (var_8 == 0xc) {
        if (var_9 != 0) goto _L272;
        goto LAB_0005cdac;
      }
      if (var_9 == 1) {
        switch(var_8) {
        default:
          goto _L272;
        case 1:
_L286:
          var_10(conn->data,"Got unexpected smtp-server response: %d",var_9);
          var_3 = CURLE_WEIRD_SERVER_REPLY;
          break;
        case 2:
          goto _L282;
        case 3:
          goto _L281;
        case 4:
_L399:
          if ((conn->data->set).use_ssl == var_11) goto LAB_0005d1e8;
          var_10(conn->data,"STARTTLS denied, code %d",var_9);
          var_3 = CURLE_USE_SSL_FAILED;
          break;
        case 6:
          goto _L279;
        case 7:
          goto _L278;
        case 8:
          goto _L277;
        case 9:
          goto _L276;
        case 10:
          goto _L275;
        case 0xb:
_L400:
          (conn->proto).ftpc.entrypath = (char *)0x0;
          var_3 = CURLE_RECV_ERROR;
        }
        goto LAB_0005cdac;
      }
      (pCVar3->info).httpcode = var_9;
      if (var_9 == 0) goto LAB_0005ce7a;
      switch(var_8) {
      case 1:
        if (99 < var_9 - 200U) goto _L286;
LAB_0005cfaf:
        (conn->proto).sshc.slash_pos = (char *)0x0;
        (conn->proto).httpc.binlen = 0;
        (conn->proto).smtpc.tls_supported = false;
        (conn->proto).smtpc.auth_supported = false;
        var_3 = var_5(&(pp->ftpc).pp,"EHLO %s",(conn->proto).ftpc.dirdepth);
        if (var_3 == var_4) {
          (conn->proto).sshc.readdir_totalLen = 2;
          goto LAB_0005cd48;
        }
        goto LAB_0005cdac;
      case 2:
_L282:
        pCVar11 = conn->data;
        if ((99 < var_9 - 200U) && (var_9 != 1)) {
          if (((pCVar11->set).use_ssl < var_12) || (conn->ssl[0].use != false)) {
            (conn->proto).httpc.binlen = 0;
            var_3 = var_5(&(pp->ftpc).pp,"HELO %s",(conn->proto).ftpc.dirdepth);
            if (var_3 == var_4) {
              (conn->proto).sshc.readdir_totalLen = 3;
              goto LAB_0005cd48;
            }
          }
          else {
            var_10(pCVar11,"Remote access denied: %d",var_9);
            var_3 = CURLE_REMOTE_ACCESS_DENIED;
          }
          goto LAB_0005cdac;
        }
        var_16 = (pCVar11->state).buffer;
        var_14 = var_13(var_16);
        var_15 = var_14 - 4;
        if (var_15 < 8) {
          if (3 < var_15) {
            if (*(int *)(var_16 + 4) == 0x455a4953) {
LAB_0005d2b2:
              (conn->proto).smtpc.size_supported = true;
            }
            else if (var_15 != 4) goto LAB_0005d46b;
          }
LAB_0005d18e:
          if (var_17 == 1) goto LAB_0005cd48;
        }
        else {
          if ((*(int *)(var_16 + 4) == 0x52415453) && (*(int *)(var_16 + 8) == 0x534c5454)) {
            (conn->proto).smtpc.tls_supported = true;
            goto LAB_0005d18e;
          }
          if (*(int *)(var_16 + 4) == 0x455a4953) goto LAB_0005d2b2;
LAB_0005d46b:
          if ((*(int *)(var_16 + 4) != 0x48545541) || (var_16[8] != ' ')) goto LAB_0005d18e;
          (conn->proto).smtpc.auth_supported = true;
          var_18 = var_14 - 9;
          if (var_18 != var_19) {
            var_20 = (type_11 *)(var_16 + 9);
            do {
              if (((type_11)(*var_20 - 9) < 0x18) && ((0x800013U >> (*var_20 - 9 & 0x1f) & 1) != 0)) {
                pbVar16 = var_20 + 1;
                var_18 = var_18 - var_21;
              }
              else {
                var_22 = var_19;
                do {
                  var_22 = var_22 + var_21;
                  pbVar16 = var_20 + var_22;
                  if (var_22 == var_18) {
                    var_18 = var_19;
                    goto LAB_0005d5b9;
                  }
                } while ((0x17 < (type_11)(var_20[var_22] - 9)) ||
                        ((0x800013U >> (var_20[var_22] - 9 & 0x1f) & 1) == 0));
                var_18 = var_18 - var_22;
LAB_0005d5b9:
                var_15 = var_23((char *)var_20,var_22,&var_24);
                if ((var_15 != 0) && (var_24 == var_22)) {
                  var_25 = &(conn->proto).sshc.slash_pos;
                  *var_25 = (char *)((type_10)*var_25 | var_15);
                }
              }
              var_20 = pbVar16;
            } while (var_18 != var_19);
          }
          if (var_17 == 1) goto LAB_0005d147;
        }
        var_26 = (pCVar11->set).use_ssl;
        if ((var_26 != var_27) && (conn->ssl[0].use == false)) {
          if ((conn->proto).smtpc.tls_supported != false) {
            var_3 = var_5(&(pp->ftpc).pp,"%s","STARTTLS");
            if (var_3 == var_4) {
              (conn->proto).sshc.readdir_totalLen = 4;
              goto LAB_0005cd48;
            }
            goto LAB_0005cdac;
          }
          if (var_26 != var_11) {
            var_10(pCVar11,"STARTTLS not supported.");
            var_3 = CURLE_USE_SSL_FAILED;
            goto LAB_0005cdac;
          }
        }
LAB_0005d1e8:
        if ((conn->proto).smtpc.auth_supported != false) {
          sasl = &(conn->proto).imapc.sasl.state;
          _Var9 = var_28((type_13 *)sasl,conn);
          if (_Var9) {
            var_3 = var_29((type_13 *)sasl,conn,false,&var_24);
            if (var_3 == var_4) {
              if (var_24 == var_21) {
                (conn->proto).sshc.readdir_totalLen = 6;
                goto LAB_0005cd48;
              }
              var_30(conn->data,"No known authentication mechanisms supported!\n");
              var_3 = CURLE_LOGIN_DENIED;
            }
            goto LAB_0005cdac;
          }
        }
        break;
      case 3:
_L281:
        if (99 < var_9 - 200U) {
          var_10(conn->data,"Remote access denied: %d",var_9);
          var_3 = CURLE_REMOTE_ACCESS_DENIED;
          goto LAB_0005cdac;
        }
        break;
      case 4:
        if (var_9 != 0xdc) goto _L399;
        var_3 = var_2(conn,0,&(conn->proto).imapc.ssldone);
        if (var_3 == var_4) {
          if ((conn->proto).ftpc.entrypath != (char *)0x5) {
            (conn->proto).sshc.readdir_totalLen = 5;
          }
          if ((conn->proto).httpc.binsettings[0x38] != '\0') {
            conn->tls_upgraded = true;
            conn->handler = &Curl_handler_smtps;
            goto LAB_0005cfaf;
          }
          goto LAB_0005cd48;
        }
        goto LAB_0005cdac;
      case 6:
_L279:
        pCVar11 = conn->data;
        var_3 = var_31((type_13 *)&(conn->proto).imapc.sasl.state,conn,var_9,
                                      &var_24);
        if (var_3 != var_4) goto LAB_0005cdac;
        if (var_24 == var_19) {
          var_10(pCVar11,"Authentication cancelled");
          var_3 = CURLE_LOGIN_DENIED;
          goto LAB_0005cdac;
        }
        if (var_24 != var_32) goto LAB_0005d147;
        break;
      case 7:
_L278:
        pCVar11 = conn->data;
        pvVar5 = (pCVar11->req).protop;
        var_33 = *(int *)((int)pvVar5 + 8);
        if (var_33 == 0) {
          if ((var_9 != 1) && (99 < var_9 - 200U)) goto LAB_0005ce08;
        }
        else if ((99 < var_9 - 200U) && ((var_9 != 0x229 && (var_9 != 1)))) {
LAB_0005ce08:
          var_10(pCVar11,"Command failed: %d",var_9);
          var_3 = CURLE_RECV_ERROR;
          goto LAB_0005cdac;
        }
        if ((pCVar11->set).opt_no_body == false) {
          var_16 = (pCVar11->state).buffer;
          var_14 = var_13(var_16);
          var_16[var_14] = '\n';
          var_3 = var_34(conn,1,var_16,var_14 + 1);
          var_16[var_14] = '\0';
          if (var_17 != 1) {
            if ((*(int *)((int)pvVar5 + 8) != 0) &&
               (var_17 = *(int *)(*(int *)((int)pvVar5 + 8) + 4), *(int *)((int)pvVar5 + 8) = var_17,
               var_17 != 0)) {
              pvVar5 = (conn->data->req).protop;
              var_35 = *(type_12 **)((int)pvVar5 + 8);
              var_16 = *(char **)((int)pvVar5 + 4);
              if (var_35 != (type_12 *)0x0) goto LAB_0005d094;
              if (var_16 == (char *)0x0) {
                var_16 = "HELP";
              }
              else if (*var_16 == '\0') {
                var_16 = "HELP";
              }
              var_3 = var_5(&(pp->ftpc).pp,"%s",var_16);
              goto LAB_0005d0bf;
            }
            (conn->proto).ftpc.entrypath = (char *)0x0;
          }
          if (var_3 != var_4) goto LAB_0005cdac;
LAB_0005d147:
          var_3 = var_7;
          if ((conn->proto).ftpc.entrypath == (char *)0x0) goto LAB_0005cdac;
        }
        else {
          if (var_9 == 1) goto LAB_0005cd48;
          if (var_33 == 0) break;
          var_17 = *(int *)(var_33 + 4);
          *(int *)((int)pvVar5 + 8) = var_17;
          if (var_17 == 0) {
            (conn->proto).ftpc.entrypath = (char *)0x0;
            goto LAB_0005cdac;
          }
          pvVar5 = (pCVar11->req).protop;
          var_35 = *(type_12 **)((int)pvVar5 + 8);
          var_16 = *(char **)((int)pvVar5 + 4);
LAB_0005d094:
          if (var_16 == (char *)0x0) {
            var_16 = "VRFY";
          }
          else if (*var_16 == '\0') {
            var_16 = "VRFY";
          }
          var_3 = var_5(&(pp->ftpc).pp,"%s %s",var_16,*var_35);
LAB_0005d0bf:
          if (var_3 != var_4) goto LAB_0005cdac;
          (conn->proto).sshc.readdir_totalLen = 7;
        }
LAB_0005cd48:
        _Var9 = var_36(&(pp->ftpc).pp);
        var_3 = var_7;
        if (!_Var9) goto LAB_0005cdac;
        goto LAB_0005cc28;
      case 8:
_L277:
        if (var_9 - 200U < 100) {
          var_16 = (char *)**(type_12 **)((int)(conn->data->req).protop + 8);
          var_37 = *var_16;
          goto joined_r0x0005cd1e;
        }
        var_10(conn->data,"MAIL failed: %d",var_9);
        var_3 = CURLE_SEND_ERROR;
        goto LAB_0005cdac;
      case 9:
_L276:
        pCVar11 = conn->data;
        if (99 < var_9 - 200U) {
          var_16 = "RCPT failed: %d";
          goto LAB_0005ccd1;
        }
        pvVar5 = (pCVar11->req).protop;
        var_35 = *(type_12 **)(*(int *)((int)pvVar5 + 8) + 4);
        *(type_12 **)((int)pvVar5 + 8) = var_35;
        if (var_35 == (type_12 *)0x0) {
          var_3 = var_5(&(pp->ftpc).pp,"%s",&DAT_0008ba18);
          if (var_3 == var_4) {
            (conn->proto).sshc.readdir_totalLen = 10;
            goto LAB_0005cd48;
          }
        }
        else {
          var_16 = (char *)*var_35;
          var_37 = *var_16;
joined_r0x0005cd1e:
          if (var_37 == '<') {
            var_3 = var_5(&(pp->ftpc).pp,"RCPT TO:%s",var_16);
          }
          else {
            var_3 = var_5(&(pp->ftpc).pp,"RCPT TO:<%s>",var_16);
          }
          if (var_3 == var_4) {
            (conn->proto).sshc.readdir_totalLen = 9;
            goto LAB_0005cd48;
          }
        }
        goto LAB_0005cdac;
      case 10:
_L275:
        pCVar11 = conn->data;
        if (var_9 == 0x162) {
          var_38(pCVar11,(pCVar11->state).infilesize);
          var_39(conn,-1,-1,false,(type_14 *)0x0,0,(type_14 *)0x0);
          (conn->proto).ftpc.entrypath = (char *)0x0;
          goto LAB_0005ce7a;
        }
        var_16 = "DATA failed: %d";
LAB_0005ccd1:
        var_10(pCVar11,var_16,var_9);
        var_3 = CURLE_SEND_ERROR;
        goto LAB_0005cdac;
      case 0xb:
        if (var_9 != 0xfa) goto _L400;
      }
_L272:
      (conn->proto).ftpc.entrypath = (char *)0x0;
      goto LAB_0005ce7a;
    }
    var_3 = var_40(&(pp->ftpc).pp);
  }
LAB_0005cdac:
  if (var_41 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_42();
  }
  return var_3;
}


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

/* WARNING: Type propagation algorithm not settling */

int MASKED(void)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  int unaff_EBX;
  int in_GS_OFFSET;
  int *unaff_retaddr;
  int local_58;
  int local_30 [3];
  int local_24;
  undefined4 uStack_14;
  
  uStack_14 = 0x5cba9;
  entry();
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  local_30[1] = 0;
  iVar3 = *unaff_retaddr;
  piVar1 = unaff_retaddr + 0x129;
  if (unaff_retaddr[0x137] == 5) {
    local_58 = FUN_000816b0(unaff_retaddr,0,unaff_retaddr + 0x138);
    if (local_58 != 0) goto LAB_0005cdac;
    if (unaff_retaddr[0x137] != 5) {
      unaff_retaddr[0x137] = 5;
    }
    if ((char)unaff_retaddr[0x138] != '\0') {
      *(undefined1 *)(unaff_retaddr + 0x92) = 1;
      unaff_retaddr[0x13c] = 0;
      unaff_retaddr[0x9f] = unaff_EBX + 0x590f7;
      unaff_retaddr[0x13e] = 0;
      *(undefined1 *)(unaff_retaddr + 0x140) = 0;
      *(undefined1 *)((int)unaff_retaddr + 0x502) = 0;
      local_58 = FUN_0005dc30(piVar1,unaff_EBX + 0x2eddc,unaff_retaddr[0x139]);
      if (local_58 == 0) {
        unaff_retaddr[0x137] = 2;
      }
      goto LAB_0005cdac;
    }
  }
  else {
    if (unaff_retaddr[0x12f] != 0) {
      local_58 = FUN_0005e090(piVar1);
      goto LAB_0005cdac;
    }
    local_58 = FUN_0005dc60(unaff_retaddr[100],piVar1,local_30,local_30 + 1);
    if (local_58 != 0) goto LAB_0005cdac;
    uVar2 = unaff_retaddr[0x137];
    if (uVar2 == 0xc) {
      if (local_30[0] == 0) goto LAB_0005cdac;
    }
    else if (local_30[0] == 1) {
      if (uVar2 < 0xc) {
                    /* WARNING: Could not recover jumptable at 0x0005cf9a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eeef + uVar2 * 4) + unaff_EBX))()
        ;
        return iVar3;
      }
    }
    else {
      *(int *)(iVar3 + 0xf48) = local_30[0];
      if (local_30[0] == 0) goto LAB_0005ce7a;
      if (uVar2 < 0xc) {
                    /* WARNING: Could not recover jumptable at 0x0005cc8c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar3 = (*(code *)(&UNK_00059c37 + *(int *)(unaff_EBX + 0x2eebf + uVar2 * 4) + unaff_EBX))()
        ;
        return iVar3;
      }
    }
    unaff_retaddr[0x137] = 0;
  }
LAB_0005ce7a:
  local_58 = 0;
LAB_0005cdac:
  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00082f60();
  }
  return local_58;
}

